<SEC-DOCUMENT>0001140361-24-025440.txt : 20240510
<SEC-HEADER>0001140361-24-025440.hdr.sgml : 20240510
<ACCEPTANCE-DATETIME>20240510160549
ACCESSION NUMBER:		0001140361-24-025440
CONFORMED SUBMISSION TYPE:	10-Q
PUBLIC DOCUMENT COUNT:		49
CONFORMED PERIOD OF REPORT:	20240331
FILED AS OF DATE:		20240510
DATE AS OF CHANGE:		20240510

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			TANDY LEATHER FACTORY INC
		CENTRAL INDEX KEY:			0000909724
		STANDARD INDUSTRIAL CLASSIFICATION:	LEATHER & LEATHER PRODUCTS [3100]
		ORGANIZATION NAME:           	04 Manufacturing
		IRS NUMBER:				752543540
		STATE OF INCORPORATION:			DE
		FISCAL YEAR END:			1231

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

	BUSINESS ADDRESS:	
		STREET 1:		1900 SE LOOP 820
		CITY:			FT WORTH
		STATE:			TX
		ZIP:			76140
		BUSINESS PHONE:		8178723200

	MAIL ADDRESS:	
		STREET 1:		1900 SE LOOP 820
		CITY:			FT WORTH
		STATE:			TX
		ZIP:			76140

	FORMER COMPANY:	
		FORMER CONFORMED NAME:	LEATHER FACTORY INC
		DATE OF NAME CHANGE:	19930723
</SEC-HEADER>
<DOCUMENT>
<TYPE>10-Q
<SEQUENCE>1
<FILENAME>ef20026315_10q.htm
<DESCRIPTION>10-Q
<TEXT>
<XBRL>
<?xml version='1.0' encoding='ASCII'?>
<html xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:srt="http://fasb.org/srt/2023" xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2020-02-12" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:us-gaap="http://fasb.org/us-gaap/2023" xmlns:dei="http://xbrl.sec.gov/dei/2023" xmlns:country="http://xbrl.sec.gov/country/2023" xmlns:currency="http://xbrl.sec.gov/currency/2023" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2022-03-31" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:naics="http://xbrl.sec.gov/naics/2023" xmlns:sic="http://xbrl.sec.gov/sic/2023" xmlns:stpr="http://xbrl.sec.gov/stpr/2023" xmlns:exch="http://xbrl.sec.gov/exch/2023" xmlns:cef="http://xbrl.sec.gov/cef/2023" xmlns:ecd="http://xbrl.sec.gov/ecd/2023" xmlns:tlfa="http://tandyleather.com/20240331" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title></title>
    <!-- Licensed to: Broadridge
         Document created using Broadridge PROfile 24.3.1.5224
         Copyright 1995 - 2024 Broadridge -->
    <meta http-equiv="Content-Type" content="text/html"/>
</head>

<body style="background-color: #ffffff; color: #000000;">
<div id="DSPFiXBRLHidden" style="display: none;"><ix:header><ix:hidden><ix:nonNumeric name="dei:AmendmentFlag" id="Fact_2b3b1b9107764bbc9b894fff0f817a5b" contextRef="c20240101to20240331" format="ixt:fixed-false">false</ix:nonNumeric><ix:nonNumeric name="dei:CurrentFiscalYearEndDate" id="Fact_2a5e425a910d41819ff4d94da660a161" contextRef="c20240101to20240331" format="ixt:date-month-day">12-31</ix:nonNumeric><ix:nonNumeric name="dei:DocumentFiscalYearFocus" id="Fact_a4bdb8c75a8944cca3d049de19a86345" contextRef="c20240101to20240331">2024</ix:nonNumeric><ix:nonNumeric name="dei:DocumentFiscalPeriodFocus" id="Fact_ecc12230cce54007922065fddf23a5cc" contextRef="c20240101to20240331">Q1</ix:nonNumeric><ix:nonNumeric name="dei:EntityCentralIndexKey" id="Fact_769cd3b399a843ab9da7ef0fee5e5749" contextRef="c20240101to20240331">0000909724</ix:nonNumeric><ix:nonFraction name="us-gaap:NumberOfOperatingSegments" id="Fact_53019d5e2b204ab49d2b6ecf90dbadfa" contextRef="c20240101to20240331" unitRef="U005" decimals="INF">1</ix:nonFraction><ix:nonFraction name="us-gaap:NumberOfReportableSegments" id="Fact_07119480a0aa41a9af1c991f8ee8cf42" contextRef="c20240101to20240331" unitRef="U005" decimals="INF">1</ix:nonFraction><ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Fact_138de38eb2164d4da489f5d1fc8ccb33" contextRef="c20240331_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember_RangeAxis_MinimumMember">P3Y</ix:nonNumeric><ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Fact_081f9d3879424da5a84f1d889d24a907" contextRef="c20240331_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndFixturesMember_RangeAxis_MinimumMember">P7Y</ix:nonNumeric><ix:nonNumeric name="dei:SecurityExchangeName" id="Fact_8d5677946dd14b1dbd72bffe8fb1efe3" contextRef="c20240101to20240331">NASDAQ</ix:nonNumeric><ix:nonFraction name="us-gaap:CommitmentsAndContingencies" id="Fact_34a595a0c62f48acb4e6be9a8ed0ae1c" contextRef="c20240331" unitRef="U002" xsi:nil="true"/><ix:nonFraction name="us-gaap:CommitmentsAndContingencies" id="Fact_e0651627809640b292897958433181f4" contextRef="c20231231" unitRef="U002" xsi:nil="true"/></ix:hidden><ix:references><link:schemaRef xlink:href="tlfa-20240331.xsd" xlink:type="simple"/></ix:references><ix:resources><xbrli:context id="c20240101to20240331"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</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="c20240510"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-05-10</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240331"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20231231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20230101to20230331"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20230331"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20231231_StatementEquityComponentsAxis_TreasuryStockCommonMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20231231_StatementEquityComponentsAxis_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</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="c20221231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20231231_StatementEquityComponentsAxis_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</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="c20221231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231_StatementEquityComponentsAxis_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231_StatementEquityComponentsAxis_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20231231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</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="c20221231_StatementEquityComponentsAxis_TreasuryStockCommonMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20231231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240101to20240331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</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="c20240101to20240331_StatementEquityComponentsAxis_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</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="c20240101to20240331_StatementEquityComponentsAxis_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</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="c20230101to20230331_StatementEquityComponentsAxis_TreasuryStockCommonMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20230101to20230331_StatementEquityComponentsAxis_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20240101to20240331_StatementEquityComponentsAxis_TreasuryStockCommonMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</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="c20240101to20240331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</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="c20230101to20230331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20230101to20230331_StatementEquityComponentsAxis_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20230101to20230331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20240331_StatementEquityComponentsAxis_TreasuryStockCommonMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240331_StatementEquityComponentsAxis_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</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="c20230331_StatementEquityComponentsAxis_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20230331_StatementEquityComponentsAxis_TreasuryStockCommonMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20230331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20230331_StatementEquityComponentsAxis_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240331_StatementEquityComponentsAxis_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</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="c20230331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</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="c20240331_StatementGeographicalAxis_CA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240331_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240331_StatementGeographicalAxis_ES"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:ES</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231_BalanceSheetLocationAxis_AccountsPayableAndAccruedLiabilitiesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccountsPayableAndAccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240331_BalanceSheetLocationAxis_AccountsPayableAndAccruedLiabilitiesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccountsPayableAndAccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20231231_BalanceSheetLocationAxis_AccountsPayableAndAccruedLiabilitiesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccountsPayableAndAccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240101to20240331_StatementGeographicalAxis_CA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</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="c20240101to20240331_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</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="c20230101to20230331_StatementGeographicalAxis_CA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20230101to20230331_StatementGeographicalAxis_OtherCountriesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tlfa:OtherCountriesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20240101to20240331_StatementGeographicalAxis_OtherCountriesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tlfa:OtherCountriesMember</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="c20230101to20230331_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20230101to20230331_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_RangeAxis_MaximumMember_StatementGeographicalAxis_AllOtherCountriesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tlfa:AllOtherCountriesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20240101to20240331_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_RangeAxis_MaximumMember_StatementGeographicalAxis_AllOtherCountriesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tlfa:AllOtherCountriesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</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="c20240331_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember_RangeAxis_MinimumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240331_PropertyPlantAndEquipmentByTypeAxis_VehiclesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:VehiclesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240331_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember_RangeAxis_MaximumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240331_PropertyPlantAndEquipmentByTypeAxis_BuildingAndBuildingImprovementsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingAndBuildingImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240331_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndFixturesMember_RangeAxis_MinimumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240331_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndFixturesMember_RangeAxis_MaximumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240101to20240331_FiniteLivedIntangibleAssetsByMajorClassAxis_IntellectualPropertyMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:IntellectualPropertyMember</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="c20240101to20240331_RangeAxis_MaximumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</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="c20230101to20230331_RangeAxis_MaximumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20240331_RangeAxis_MaximumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20230103_LineOfCreditFacilityAxis_JPMorganChaseBankNAMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">tlfa:JPMorganChaseBankNAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-03</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240101to20240331_LineOfCreditFacilityAxis_JPMorganChaseBankNAMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">tlfa:JPMorganChaseBankNAMember</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="c20200630_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_TwoThousandAndThirteenRestrictedStockPlanMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tlfa:TwoThousandAndThirteenRestrictedStockPlanMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20230430_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember_RangeAxis_MaximumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tlfa:TwoThousandAndTwentyThreeRestrictedStockPlanMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20130131_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_TwoThousandAndThirteenRestrictedStockPlanMember_RangeAxis_MaximumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tlfa:TwoThousandAndThirteenRestrictedStockPlanMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2013-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240101to20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember_TitleOfIndividualAxis_ChiefExecutiveOfficerMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tlfa:ServicedBasedRestrictedStockUnitsRSUsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:ChiefExecutiveOfficerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tlfa:TwoThousandAndTwentyThreeRestrictedStockPlanMember</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="c20240101to20240331_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember_RangeAxis_MinimumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tlfa:TwoThousandAndTwentyThreeRestrictedStockPlanMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</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="c20240101to20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember_TitleOfIndividualAxis_DirectorMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tlfa:TwoThousandAndTwentyThreeRestrictedStockPlanMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tlfa:ServicedBasedRestrictedStockUnitsRSUsMember</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="c20240101to20240331_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tlfa:TwoThousandAndTwentyThreeRestrictedStockPlanMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</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="c20240301to20240331_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tlfa:TwoThousandAndTwentyThreeRestrictedStockPlanMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-03-01</xbrli:startDate><xbrli:endDate>2024-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20231001to20231031_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember_TitleOfIndividualAxis_ChiefExecutiveOfficerMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tlfa:ServicedBasedRestrictedStockUnitsRSUsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tlfa:TwoThousandAndTwentyThreeRestrictedStockPlanMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:ChiefExecutiveOfficerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-10-01</xbrli:startDate><xbrli:endDate>2023-10-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20230601to20230630_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember_TitleOfIndividualAxis_DirectorMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tlfa:ServicedBasedRestrictedStockUnitsRSUsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tlfa:TwoThousandAndTwentyThreeRestrictedStockPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-06-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20231231_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tlfa:RestrictedStockAndRestrictedStockUnitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240101to20240331_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tlfa:RestrictedStockAndRestrictedStockUnitsMember</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="c20240331_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tlfa:RestrictedStockAndRestrictedStockUnitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240101to20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tlfa:ServicedBasedRestrictedStockUnitsRSUsMember</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="c20230101to20230331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tlfa:ServicedBasedRestrictedStockUnitsRSUsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20240101to20240331_AwardTypeAxis_PerformanceBasedRestrictedStockUnitsRSUsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tlfa:PerformanceBasedRestrictedStockUnitsRSUsMember</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="c20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tlfa:ServicedBasedRestrictedStockUnitsRSUsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20230101to20230331_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tlfa:RestrictedStockAndRestrictedStockUnitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20240101to20240331_AwardTypeAxis_RestrictedStockMember_TitleOfIndividualAxis_DirectorMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</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="c20230101to20230331_AwardTypeAxis_RestrictedStockMember_TitleOfIndividualAxis_ShareBasedPaymentArrangementEmployeeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">us-gaap:ShareBasedPaymentArrangementEmployeeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20240101to20240331_AwardTypeAxis_RestrictedStockMember_TitleOfIndividualAxis_ShareBasedPaymentArrangementEmployeeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">us-gaap:ShareBasedPaymentArrangementEmployeeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</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="c20230101to20230331_AwardTypeAxis_RestrictedStockMember_TitleOfIndividualAxis_DirectorMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20220808_RangeAxis_MaximumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000909724</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-08-08</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="U001"><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unit><xbrli:unit id="U002"><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unit><xbrli:unit id="U003"><xbrli:divide><xbrli:unitNumerator><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unitNumerator><xbrli:unitDenominator><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unitDenominator></xbrli:divide></xbrli:unit><xbrli:unit id="U004"><xbrli:measure>tlfa:Store</xbrli:measure></xbrli:unit><xbrli:unit id="U005"><xbrli:measure>tlfa:Segment</xbrli:measure></xbrli:unit><xbrli:unit id="U006"><xbrli:measure>xbrli:pure</xbrli:measure></xbrli:unit><xbrli:unit id="U007"><xbrli:measure>tlfa:Discount</xbrli:measure></xbrli:unit></ix:resources></ix:header></div>


  <div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000;">
    <hr style="border: none; border-bottom: 1px solid black; border-top: 4px solid black; height: 10px; color: #ffffff; background-color: #ffffff; text-align: center; margin-left: auto; margin-right: auto;"/>
    <div>
      <div style="text-align: center; font-size: 14pt; font-weight: bold; font-family: 'Times New Roman';">UNITED STATES<br/>
      </div>

      <div style="text-align: center; font-size: 14pt; font-weight: bold; font-family: 'Times New Roman';">SECURITIES AND EXCHANGE COMMISSION</div>

      <div style="text-align: center; font-size: 12pt; font-weight: bold; font-family: 'Times New Roman';">Washington, D.C.&#160; 20549</div>

      <div style="text-align: center; font-size: 18pt; font-weight: bold; font-family: 'Times New Roman';">Form <ix:nonNumeric name="dei:DocumentType" id="Fact_6bc8d1d88f9d4ad291a2d93b945e8a04" contextRef="c20240101to20240331">10-Q</ix:nonNumeric></div>

      <div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

      <div style="font-family: 'Times New Roman'; font-size: 10pt;">(Mark One)</div>

      <div style="font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonNumeric name="dei:DocumentQuarterlyReport" id="Fact_1f05e00be1cc4359b0bb517c59dc2361" contextRef="c20240101to20240331" format="ixt-sec:boolballotbox">&#9746;</ix:nonNumeric> QUARTERLY REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE
        SECURITIES EXCHANGE ACT OF 1934</div>

      <div style="font-family: 'Times New Roman'; font-size: 10pt;">For the quarterly period ended <ix:nonNumeric name="dei:DocumentPeriodEndDate" id="Fact_da20207f205343d4872aa035b0939359" contextRef="c20240101to20240331" format="ixt:date-monthname-day-year-en">March 31, 2024</ix:nonNumeric></div>

      <div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt;">or</div>

      <div style="font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonNumeric name="dei:DocumentTransitionReport" id="Fact_8fb3ec6206fe4c738f56ffca6aa6b8bf" contextRef="c20240101to20240331" format="ixt-sec:boolballotbox">&#9744;</ix:nonNumeric> TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE
        SECURITIES EXCHANGE ACT OF 1934</div>

      <div style="font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">For the transition period from __________ to ______________</div>

      <div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

      <div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt;">Commission File Number <ix:nonNumeric name="dei:EntityFileNumber" id="Fact_d50af2a173ac479ba8a404687c93fd72" contextRef="c20240101to20240331">1-12368</ix:nonNumeric></div>

      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;">


  <tr>

    <td style="width: 100%; vertical-align: top;">
              <div style="text-align: center;"><img width="300" height="58" src="image00001.jpg" alt="graphic"/></div>
            </td>

  </tr>


</table>
      <div style="text-align: center; font-size: 24pt; font-weight: bold; font-family: 'Times New Roman';"><span style="text-decoration: underline;"><span style="font-size: 14pt;"><ix:nonNumeric name="dei:EntityRegistrantName" id="Fact_fee2f731effe4264b7efcac3d5f20fed" contextRef="c20240101to20240331">TANDY LEATHER FACTORY, INC</ix:nonNumeric></span>.</span></div>

      <div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt;">(Exact name of registrant as specified in its charter)</div>

      <div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;">


  <tr>

    <td style="width: 49%; vertical-align: top;">
              <div style="text-align: center; font-weight: bold;"><span style="text-decoration: underline;"><ix:nonNumeric name="dei:EntityIncorporationStateCountryCode" id="Fact_ed1ce4f675114746ba2e102e4081b69f" contextRef="c20240101to20240331" format="ixt-sec:stateprovnameen">Delaware</ix:nonNumeric><br/>
                </span></div>
            </td>

    <td style="width: 2%; vertical-align: top;" colspan="1">&#160;</td>

    <td style="width: 49%; vertical-align: top;">
              <div style="text-align: center; font-weight: bold;"><span style="text-decoration: underline;"><ix:nonNumeric name="dei:EntityTaxIdentificationNumber" id="Fact_5a7f0988c49f4b2faafc4b39aa75fa27" contextRef="c20240101to20240331">75-2543540</ix:nonNumeric><br/>
                </span></div>
            </td>

  </tr>

  <tr>

    <td style="width: 49%; vertical-align: top;">
              <div style="text-align: center;">(State or other jurisdiction of incorporation or organization)</div>
            </td>

    <td style="width: 2%; vertical-align: top;" colspan="1">&#160;</td>

    <td style="width: 49%; vertical-align: top;">
              <div style="text-align: center;">(I.R.S. Employer Identification No.)</div>
            </td>

  </tr>


</table>
      <div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

      <div style="text-align: center; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;"><span style="text-decoration: underline;"><ix:nonNumeric name="dei:EntityAddressAddressLine1" id="Fact_b359cbff66ce46ed88c8b0e7078c7545" contextRef="c20240101to20240331">1900 Southeast Loop 820</ix:nonNumeric>, <ix:nonNumeric name="dei:EntityAddressCityOrTown" id="Fact_a2df616486534fc5b472c9fbb4f2ac7f" contextRef="c20240101to20240331">Fort Worth</ix:nonNumeric>, <ix:nonNumeric name="dei:EntityAddressStateOrProvince" id="Fact_e141d97b9fd0449eac7d54e6781c1c16" contextRef="c20240101to20240331" format="ixt-sec:stateprovnameen">Texas</ix:nonNumeric>&#160; <ix:nonNumeric name="dei:EntityAddressPostalZipCode" id="Fact_899a2dea4ed84c3f9ecd762866bec385" contextRef="c20240101to20240331">76140</ix:nonNumeric></span></div>

      <div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt;">(Address of principal executive offices) (Zip code)</div>

      <div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

      <div style="text-align: center; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;"><span style="text-decoration: underline;">(<ix:nonNumeric name="dei:CityAreaCode" id="Fact_549df5a0b6c741f38e5c37a2936744d6" contextRef="c20240101to20240331">817</ix:nonNumeric>) <ix:nonNumeric name="dei:LocalPhoneNumber" id="Fact_38acc00125d64ed685e73ff581b889e5" contextRef="c20240101to20240331">872-3200</ix:nonNumeric></span></div>

      <div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt;">(Registrant&#8217;s telephone number, including area code)</div>

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

      <div style="text-align: center;">
        <hr style="background-color: #000000; border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px auto; height: 2px; width: 50%; color: #000000; margin-left: auto; margin-right: auto;"/></div>

      <div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt;">(Former name, former address and former fiscal year, if changed since last report)</div>

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

      <table cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; width: 99%; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; text-align: left;">


  <tr>

    <td style="width: 33%; vertical-align: top;">
              <div style="text-align: center;"><span style="text-decoration: underline;">Title of each class</span></div>
            </td>

    <td style="width: 33%; vertical-align: top;">
              <div style="text-align: center;"><span style="text-decoration: underline;">Trading Symbol</span></div>
            </td>

    <td style="width: 33%; vertical-align: top;">
              <div style="text-align: center;"><span style="text-decoration: underline;">Name of each exchange on which registered</span></div>
            </td>

  </tr>

  <tr>

    <td style="width: 33%; vertical-align: top;">
              <div style="text-align: center;"><ix:nonNumeric name="dei:Security12bTitle" id="Fact_f6a90e49d1ca475eab2beb24ad663c28" contextRef="c20240101to20240331">Common Stock, par value $0.0024</ix:nonNumeric><br/>
              </div>
            </td>

    <td style="width: 33%; vertical-align: top;">
              <div style="text-align: center;"><ix:nonNumeric name="dei:TradingSymbol" id="Fact_4ef7fe560f304157a36b34792e25f7cc" contextRef="c20240101to20240331">TLF</ix:nonNumeric><br/>
              </div>
            </td>

    <td style="width: 33%; vertical-align: top;">
              <div style="text-align: center;"><span style="-sec-ix-hidden:Fact_8d5677946dd14b1dbd72bffe8fb1efe3">The Nasdaq Capital Market</span><br/>
              </div>
            </td>

  </tr>


</table>
      <div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

      <div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">Indicate by check mark whether the registrant: (1) has filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the
        preceding 12 months (or for such shorter period that the registrant was required to file such reports), and (2) has been subject to such filing requirements for the past 90 days.&#160; <ix:nonNumeric name="dei:EntityCurrentReportingStatus" id="Fact_7462a5e3928d4e9ea9940150b1254345" contextRef="c20240101to20240331">Yes</ix:nonNumeric> &#9746;&#160; No &#9744;</div>

      <div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

      <div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">Indicate by check mark whether the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T
        (&#167;232.405 of this chapter) during the preceding 12 months (or for such shorter period that the registrant was required to submit such files). <ix:nonNumeric name="dei:EntityInteractiveDataCurrent" id="Fact_adfb022b38a34fdea0f3d10bc0354354" contextRef="c20240101to20240331">Yes</ix:nonNumeric>
        &#9746;&#160; No &#9744; <br/>
      </div>

      <div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

      <div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">Indicate by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer, a smaller reporting company, or an emerging
        growth company.&#160; See the definitions of &#8220;large accelerated filer,&#8221; &#8220;accelerated filer,&#8221; &#8220;smaller reporting company,&#8221; and &#8220;emerging growth company&#8221; in Rule 12b-2 of the Exchange Act.</div>

      <div style="font-family: 'Times New Roman'; font-size: 10pt;">&#160;</div>

      <div>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;">


  <tr>

    <td style="width: 13.31%; vertical-align: top;">&#160;</td>

    <td style="width: 34.68%; vertical-align: top;">
                <div style="text-align: justify;">Large accelerated filer &#9744;</div>
              </td>

    <td style="width: 52%; vertical-align: top;">
                <div style="text-align: justify;"><ix:nonNumeric name="dei:EntityFilerCategory" id="Fact_a6c39124a9944daea4c2b68c8b07816e" contextRef="c20240101to20240331" format="ixt-sec:entityfilercategoryen">Non-accelerated filer</ix:nonNumeric> &#9746;</div>
              </td>

  </tr>

  <tr>

    <td style="width: 13.31%; vertical-align: top;">&#160;</td>

    <td style="width: 34.68%; vertical-align: top;">
                <div style="text-align: justify;">Accelerated filer &#9744;</div>
              </td>

    <td style="width: 52%; vertical-align: top;">
                <div style="text-align: justify;">Smaller reporting company <ix:nonNumeric name="dei:EntitySmallBusiness" id="Fact_c83ac92d4cec4867881d3657a6fdaab2" contextRef="c20240101to20240331" format="ixt-sec:boolballotbox">&#9746;</ix:nonNumeric></div>
              </td>

  </tr>

  <tr>

    <td style="width: 13.31%; vertical-align: top;">&#160;</td>

    <td style="width: 34.68%; vertical-align: top;">&#160;</td>

    <td style="width: 52%; vertical-align: top;">
                <div style="text-align: justify;">Emerging growth company <ix:nonNumeric name="dei:EntityEmergingGrowthCompany" id="Fact_406ad1d5c23c49729bab7eb3c1508071" contextRef="c20240101to20240331" format="ixt-sec:boolballotbox">&#9744;</ix:nonNumeric></div>
              </td>

  </tr>


</table>
      </div>

      <div><br/></div>

      <div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">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;</div>

      <div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

      <div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">Indicate by check mark whether the registrant is a shell company (as defined in Rule 12b-2 of the Exchange Act). Yes <ix:nonNumeric name="dei:EntityShellCompany" id="Fact_6e8d7ff744ec4199a9d32e2d618b8e55" contextRef="c20240101to20240331" format="ixt-sec:boolballotbox">&#9744;</ix:nonNumeric> No &#9746;</div>

      <div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

      <div style="font-family: 'Times New Roman'; font-size: 10pt;">As of May 10, 2024, the registrant had <ix:nonFraction name="dei:EntityCommonStockSharesOutstanding" id="Fact_1742aaea241f48b2b1bf68309b168f4e" contextRef="c20240510" unitRef="U001" decimals="INF" scale="0" format="ixt:num-dot-decimal">8,401,972</ix:nonFraction> shares of Common Stock, par
        value $0.0024 per share, outstanding.</div>

      <div style="font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
      </div>

      <div>
        <hr style="border: none; border-bottom: 4px solid black; border-top: 1px solid black; height: 10px; color: #ffffff; background-color: #ffffff; text-align: center; margin-left: auto; margin-right: auto;"/> </div>

      <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div class="BRPFPageBreak" style="page-break-after:always;">
          <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

      </div>

      <!--PROfilePageNumberReset%LCR%2%%%--> </div>

  </div>


  <div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000;">
    <div>
      <div style="text-align: center; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">TANDY LEATHER FACTORY, INC.</div>

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

      <div style="text-align: center; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">FORM 10-Q</div>

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

      <div style="font-family: 'Times New Roman'; font-size: 10pt;">
        <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">FOR THE QUARTERLY PERIOD ENDED MARCH 31, 2024</div>

        <div><span style="font-family: 'Times New Roman';"><br/>
          </span> </div>

        <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"><a id="TABLEOFCONTENTS"><!--Anchor--></a>TABLE OF CONTENTS</div>

      </div>

    </div>

    <div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">
      <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial;"><br/>
      </div>

      <table cellspacing="0" cellpadding="0" border="0" style="background-color: rgb(255, 255, 255); border-collapse: collapse; letter-spacing: normal; white-space: normal; width: 100%; word-spacing: 0px; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-weight: 400; text-align: left; text-transform: none;">


  <tr>

    <td style="width: 95%; vertical-align: top; background-color: rgb(204, 238, 255);">
              <div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"><a href="#FINANCIALINFORMATION">PART I.&#160; FINANCIAL INFORMATION</a></div>
            </td>

    <td style="width: 5%; vertical-align: top; background-color: rgb(204, 238, 255);">
              <div style="text-align: right; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">2</div>
            </td>

  </tr>

  <tr>

    <td style="width: 95%; vertical-align: top;">&#160;</td>

    <td style="width: 5%; vertical-align: top; text-align: right;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 95%; vertical-align: top; background-color: rgb(204, 238, 255);">
              <div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; margin-left: 9pt;"><a href="#CondensedConsolidatedFina">Item 1.&#160;&#160; Condensed Consolidated Financial Statements.</a></div>
            </td>

    <td style="width: 5%; vertical-align: top; background-color: rgb(204, 238, 255);">
              <div style="text-align: right; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2</div>
            </td>

  </tr>

  <tr>

    <td style="width: 95%; vertical-align: top;">&#160;</td>

    <td style="width: 5%; vertical-align: top; text-align: right;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 95%; vertical-align: top; background-color: rgb(204, 238, 255);">
              <div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; margin-left: 18pt;">
                <div><a href="#NOTES">NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS (UNAUDITED)</a></div>
              </div>
            </td>

    <td style="width: 5%; vertical-align: top; background-color: rgb(204, 238, 255);">
              <div style="text-align: right; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">6<br/>
              </div>
            </td>

  </tr>

  <tr>

    <td style="width: 95%; vertical-align: top;">&#160;</td>

    <td style="width: 5%; vertical-align: top; text-align: right;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 95%; vertical-align: top; background-color: rgb(204, 238, 255);">
              <div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; margin-left: 9pt;">
                <div><a href="#ManagementsDiscussionandA">Item 2.&#160; Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations.</a></div>
              </div>
            </td>

    <td style="width: 5%; vertical-align: top; background-color: rgb(204, 238, 255); text-align: right;">16</td>

  </tr>

  <tr>

    <td style="width: 95%; vertical-align: top;">&#160;</td>

    <td style="width: 5%; vertical-align: top; text-align: right;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 95%; vertical-align: top; background-color: rgb(204, 238, 255);">
              <div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; margin-left: 9pt;">
                <div><a href="#ControlsandProcedures.">Item 4.&#160; Controls and Procedures.</a></div>
              </div>
            </td>

    <td style="width: 5%; vertical-align: top; background-color: rgb(204, 238, 255); text-align: right;">22</td>

  </tr>

  <tr>

    <td style="width: 95%; vertical-align: top;">&#160;</td>

    <td style="width: 5%; vertical-align: top; text-align: right;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 95%; vertical-align: top; background-color: rgb(204, 238, 255);">
              <div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"><a href="#OTHERINFORMATION">PART II.&#160; OTHER INFORMATION</a></div>
            </td>

    <td style="width: 5%; vertical-align: top; background-color: rgb(204, 238, 255); font-weight: normal; text-align: right;">23</td>

  </tr>

  <tr>

    <td style="width: 95%; vertical-align: top;">&#160;</td>

    <td style="width: 5%; vertical-align: top; text-align: right;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 95%; vertical-align: top; background-color: rgb(204, 238, 255);">
              <div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; margin-left: 9pt;">
                <div><a href="#LegalProceedings.">Item 1.&#160; Legal Proceedings.</a></div>
              </div>
            </td>

    <td style="width: 5%; vertical-align: top; background-color: rgb(204, 238, 255); text-align: right;">23</td>

  </tr>

  <tr>

    <td style="width: 95%; vertical-align: top;">&#160;</td>

    <td style="width: 5%; vertical-align: top; text-align: right;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 95%; vertical-align: top; background-color: rgb(204, 238, 255);">
              <div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; margin-left: 9pt;">
                <div><a href="#RiskFactors.">Item 1A.&#160; Risk Factors.</a></div>
              </div>
            </td>

    <td style="width: 5%; vertical-align: top; background-color: rgb(204, 238, 255); text-align: right;">23</td>

  </tr>

  <tr>

    <td style="width: 95%; vertical-align: top;">&#160;</td>

    <td style="width: 5%; vertical-align: top; text-align: right;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 95%; vertical-align: top; background-color: rgb(204, 238, 255);">
              <div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; margin-left: 9pt;">
                <div><a href="#UnregisteredSalesofEquity">Item 2.&#160; Unregistered Sales of Equity Securities and Use of Proceeds.</a></div>
              </div>
            </td>

    <td style="width: 5%; vertical-align: top; background-color: rgb(204, 238, 255); text-align: right;">23</td>

  </tr>

  <tr>

    <td style="width: 95%; vertical-align: top;">&#160;</td>

    <td style="width: 5%; vertical-align: top; text-align: right;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 95%; vertical-align: top; background-color: rgb(204, 238, 255);">
              <div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; margin-left: 9pt;">
                <div><a href="#Exhibits.">Item 6.&#160; Exhibits.</a></div>
              </div>
            </td>

    <td style="width: 5%; vertical-align: top; background-color: rgb(204, 238, 255); text-align: right;">24</td>

  </tr>

  <tr>

    <td style="width: 95%; vertical-align: top;">&#160;</td>

    <td style="width: 5%; vertical-align: top; text-align: right;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 95%; vertical-align: top; background-color: rgb(204, 238, 255);">
              <div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt; margin-left: 18pt;"><a href="#SIGNATURES">SIGNATURES</a></div>
            </td>

    <td style="width: 5%; vertical-align: top; background-color: rgb(204, 238, 255); text-align: right;">26</td>

  </tr>


</table>
      <div style="font-weight: normal; font-size: 8pt; font-family: 'Times New Roman'; font-style: italic;"><br/>
      </div>

      <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
        <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">ii</span></div>

        <div style="page-break-after: always;" class="BRPFPageBreak">
          <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

        <div style="width: 100%;" class="BRPFPageHeader">
          <div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 8pt; font-style: italic; font-variant: normal; text-transform: none;"><a href="#TABLEOFCONTENTS">Table of Contents</a></div>

        </div>

      </div>

      <!--PROfilePageNumberReset%Num%1%%%-->
      <div>
        <div style="text-align: justify; margin-top: 6pt; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">Cautionary Statement Regarding Forward-Looking Statements and Information</div>

        <div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

        <div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic; font-weight: normal;">The following discussion, as well as other portions of this Form 10-Q, contains forward-looking statements that reflect our
          plans, estimates and beliefs.&#160; Any such forward-looking statements (including, but not limited to, statements to the effect that Tandy Leather Factory, Inc. (&#8220;TLF&#8221;) or its management &#8220;anticipates,&#8221; &#8220;plans,&#8221; &#8220;estimates,&#8221; &#8220;expects,&#8221; &#8220;believes,&#8221;
          &#8220;intends,&#8221; and other similar expressions) that are not statements of historical fact should be considered forward-looking statements and should be read in conjunction with our Condensed Consolidated Financial Statements and related notes
          contained elsewhere in this report.&#160; These forward-looking statements are made based upon management&#8217;s current plans, expectations, estimates, assumptions and beliefs concerning future events impacting us and should be read carefully because they
          involve risks and uncertainties.&#160; We assume no obligation to update or otherwise revise these forward-looking statements, except as required by law.&#160; Specific examples of forward-looking statements include, but are not limited to, statements
          regarding our forecasts of financial performance, share repurchases, store openings or store closings, capital expenditures and working capital requirements.&#160; Our actual results could materially differ from those discussed in such forward-looking
          statements.&#160; Factors that could cause or contribute to such differences include, but are not limited to, those discussed below and particularly in &#8220;Item 1A. Risk Factors&#8221; and &#8220;Item 7. Management&#8217;s Discussion and Analysis of Financial Condition
          and Results of Operations&#8221; of our Annual Report on Form 10-K for the fiscal year ended December 31, 2023.&#160; Unless the context otherwise indicates, references in this Form&#160;10-Q to <a id="z_Hlk80951851"></a>&#8220;TLF,&#8221; &#8220;we,&#8221; &#8220;our,&#8221; &#8220;us,&#8221; &#8220;the
          Company,&#8221; &#8220;Tandy,&#8221; or &#8220;Tandy Leather&#8221; mean Tandy Leather Factory, Inc., together with its subsidiaries.</div>

        <div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic; font-weight: normal;"> <br/>
        </div>

        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">1</span></div>

          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 8pt; font-style: italic; font-variant: normal; text-transform: none;"><a href="#TABLEOFCONTENTS">Table of Contents</a></div>

          </div>

        </div>

      </div>

    </div>

  </div>


  <div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000;">
    <div>
      <!--Anchor-->
      <div style="font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;"><!--Anchor--><!--Anchor--><!--Anchor--><!--Anchor--><!--Anchor-->PART I.<!--Anchor-->&#160;
        <!--Anchor--><a id="FINANCIALINFORMATION"><!--Anchor--></a>FINANCIAL INFORMATION<!--Anchor--></div>

      <a id="CondensedConsolidatedFina"><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;">


  <tr>

    <td style="width: 35pt; vertical-align: top;"><!--Anchor--><span style="font-weight: bold;"><!--Anchor--><!--Anchor-->Item 1.<!--Anchor--></span></td>

    <td style="vertical-align: top;">
              <!--Anchor-->
              <div style="font-weight: bold;"><!--Anchor--><!--Anchor--><!--Anchor-->Condensed Consolidated Financial Statements.</div>
            </td>

  </tr>


</table>
      <div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

      <div style="color: rgb(0, 0, 0); font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">Tandy Leather Factory, Inc.</div>

      <div style="color: rgb(0, 0, 0); font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">
        <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-weight: bold;">Condensed Consolidated Balance Sheets<br/>
        </div>

      </div>

      <div style="color: rgb(0, 0, 0); font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">(amounts in thousands, except share data and per share data)</div>

      <div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

      <table cellspacing="0" cellpadding="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%;">


  <tr>

    <td valign="bottom" rowspan="1" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="font-weight: bold; text-align: center; vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" rowspan="1" style="vertical-align: bottom; font-weight: bold; text-align: center; white-space: nowrap;">March 31,</td>

    <td valign="bottom" colspan="1" rowspan="1" style="font-weight: bold; text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: center; font-weight: bold; vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" rowspan="1" style="vertical-align: bottom; text-align: center; font-weight: bold; white-space: nowrap;"> December 31,</td>

    <td valign="bottom" colspan="1" rowspan="1" style="font-weight: bold; text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;">
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">
                <div style="text-align: center;"><span style="font-weight: bold;"> 2024</span></div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;">
              <div style="text-align: center;"><span style="font-weight: bold;">2023 </span></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" rowspan="1" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="font-weight: bold; text-align: center; vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" rowspan="1" style="vertical-align: bottom; font-weight: bold; text-align: center; white-space: nowrap;"> (Unaudited)</td>

    <td valign="bottom" colspan="1" rowspan="1" style="font-weight: bold; text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" rowspan="1" style="vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom;">
              <div style="color: rgb(0, 0, 0); font-weight: bold; text-align: center;">ASSETS</div>
            </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">CURRENT ASSETS:</div>
            </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Cash and cash equivalents</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:CashAndCashEquivalentsAtCarryingValue" id="Fact_f62070ca53104d4ba151c630e4e4a1e9" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">12,315</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:CashAndCashEquivalentsAtCarryingValue" id="Fact_acd4eb7224d943e981813fec3b10eb8a" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">12,159</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
              <div style="text-indent: -9pt; margin-left: 9pt;"><span style="color: rgb(0, 0, 0);">Accounts receivable-trade, net of allowance of </span>$<span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" id="Fact_46d596c2d45c4fefa92b51156eb74549" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" id="Fact_293bf35261534227b66591d272267701" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">31</ix:nonFraction></ix:nonFraction></span><span style="color: rgb(0, 0, 0);"> at <span style="text-indent: 0pt;">March 31</span>, <span style="text-indent: 0pt;">2024</span> and December 31, <span style="text-indent: 0pt;">2023</span>, respectively</span></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:AccountsReceivableNetCurrent" id="Fact_b43d23186a354ef087c9ca3f0714944f" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">420</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:AccountsReceivableNetCurrent" id="Fact_f6edb4e0e0b749f68305f01636331399" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">264</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Inventory</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:InventoryNet" id="Fact_082e0eee2b8a4713a7c6283f78807a0c" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">36,675</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:InventoryNet" id="Fact_04cf1b1bb642476d9415c65d064283d1" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">37,993</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Income tax receivable</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:IncomeTaxesReceivable" id="Fact_9569c2a285484bf5a1e8671ca34e2169" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">248</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:IncomeTaxesReceivable" id="Fact_26db74e67738448993d3afee0b1d2d09" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">248</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Prepaid expenses</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:PrepaidExpenseCurrent" id="Fact_41b6488a3a3a44a88ad21a52af44d03f" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">403</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:PrepaidExpenseCurrent" id="Fact_7ab4bb06c3b8482e84d348cd41978ad3" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">475</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Other current assets</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OtherAssetsCurrent" id="Fact_72f4735c8452450588a5082fc9155886" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">99</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OtherAssetsCurrent" id="Fact_3dbac0e053c54355b179d600e1c205ca" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">113</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);">Total current assets</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:AssetsCurrent" id="Fact_995f57d29ee64d2db251b190ed0f3ec3" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">50,160</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:AssetsCurrent" id="Fact_b5b9f863a39241b5afc9a427225f9788" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">51,252</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Property and equipment, at cost</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" id="Fact_1729587441e2462495c0439e1e1c882b" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">29,875</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" id="Fact_7acd6689df674f3dbab31f92f3a08df8" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">28,678</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Less accumulated depreciation</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">(<ix:nonFraction name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" id="Fact_3e4fb85c9e6542f39e5a78298cfaf205" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">18,426</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">)</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">(<ix:nonFraction name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" id="Fact_10f9e733c68f4ac4914585c13e5fd0a5" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">18,131</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">)</div>
            </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);">Property and equipment, net</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" id="Fact_f72bd034c5f44a138409a07a60bc635c" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">11,449</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" id="Fact_5bd5772e381b4d8f813e1dd299e40828" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">10,547</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Operating lease assets</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OperatingLeaseRightOfUseAsset" id="Fact_71eb22a417f54533b1e1b044e588bfc6" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,503</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OperatingLeaseRightOfUseAsset" id="Fact_1018266c2a7540a195a15dca0489054c" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">8,995</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
              <div style="color: rgb(0, 0, 0);">
                <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';">Financing lease assets</div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:FinanceLeaseRightOfUseAsset" id="Fact_2ded10a9af984a029883901596abdd70" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:FinanceLeaseRightOfUseAsset" id="Fact_3f31f84862244212ad54577d881c2378" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">23</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt;"><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">Deferred income taxes</span> </span></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:DeferredIncomeTaxAssetsNet" id="Fact_3f515628f2cf4f328ad46a7cb2c99fd1" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">880</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:DeferredIncomeTaxAssetsNet" id="Fact_70f24457e3214e37805977f93e7e030c" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">880</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Other assets</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OtherAssetsNoncurrent" id="Fact_0541ef70243b490987cc2734e2f1ade0" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">440</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OtherAssetsNoncurrent" id="Fact_7a579ba1a3f8410fbbef8802e1dfd86f" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">438</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; text-align: left; width: 76%; padding-bottom: 4px; background-color: rgb(204, 238, 255);">
              <div style="color: rgb(0, 0, 0); font-weight: bold;">TOTAL ASSETS</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
            </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:Assets" id="Fact_1fe1585753e64adea846847776632ae1" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">72,432</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
            </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:Assets" id="Fact_70cffd90289e4302b54227519ea5ff7f" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">72,135</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; text-align: left; width: 76%; background-color: #CCEEFF;">
              <div style="color: rgb(0, 0, 0); font-weight: bold; text-align: center;">LIABILITIES AND STOCKHOLDERS&#8217; EQUITY</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; text-align: center;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">CURRENT LIABILITIES:</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Accounts payable-trade</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:AccountsPayableTradeCurrent" id="Fact_11c12efc92224acda9e458cb99da55e6" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,215</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:AccountsPayableTradeCurrent" id="Fact_ad09d85a682f4e8d97b11d1b3b7dbfb4" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,333</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Accrued expenses and other liabilities</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:AccruedLiabilitiesAndOtherLiabilities" id="Fact_4eef18432c924b56b3185d5a927b281c" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,986</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:AccruedLiabilitiesAndOtherLiabilities" id="Fact_aac5d183456b4ea0b8f8a0b9dabb0ca5" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">3,140</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" rowspan="1" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">Income taxes payable <br/>
            </td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;"><ix:nonFraction name="us-gaap:TaxesPayableCurrent" id="Fact_1e61e8dbeefb4fd88509d39f3b899a0c" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">449</ix:nonFraction></td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;"><ix:nonFraction name="us-gaap:TaxesPayableCurrent" id="Fact_cda6dbc814a7488cb3d6edbc252dfa50" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">288</ix:nonFraction></td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Current portion of operating lease liabilities</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OperatingLeaseLiabilityCurrent" id="Fact_b0ed5a54a31d412b9206534fe59808b1" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">3,194</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OperatingLeaseLiabilityCurrent" id="Fact_2404d22b257443b8ba6b802bb6a77552" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">3,172</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);">Total current liabilities</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:LiabilitiesCurrent" id="Fact_194f3a521f8542ed98e877f03b2c7a02" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">7,844</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:LiabilitiesCurrent" id="Fact_02ec94ec4d2a470489824c13737974d1" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">8,933</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" rowspan="1" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">Deferred income taxes</span></td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;"><ix:nonFraction name="us-gaap:DeferredIncomeTaxLiabilitiesNet" id="Fact_4d8137d4ddef4158a2cb555a3095bdda" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">9</ix:nonFraction></td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;"><ix:nonFraction name="us-gaap:DeferredIncomeTaxLiabilitiesNet" id="Fact_d9ce892ce9ca4a31bb1d7b21a1f4fecf" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">9</ix:nonFraction></td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Uncertain tax positions</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:LiabilityForUncertainTaxPositionsNoncurrent" id="Fact_c9ad2f5c2f774ea4a3d5d622da635aac" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">388</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:LiabilityForUncertainTaxPositionsNoncurrent" id="Fact_8de18742607b436280eb413a3b253259" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">388</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Other non-current liabilities</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OtherLiabilitiesNoncurrent" id="Fact_d949d25374384172856dc7f66fdca62b" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">210</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OtherLiabilitiesNoncurrent" id="Fact_204d66e26dbf491cba8340ec6a46a474" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">205</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Operating lease liabilities, non-current</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OperatingLeaseLiabilityNoncurrent" id="Fact_7dd3626f31de4d73899181cc1a2a07b9" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">6,743</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OperatingLeaseLiabilityNoncurrent" id="Fact_18ae09ec07c649dbb83a7ab0e8114e93" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">6,253</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Finance lease liabilities, non-current</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:FinanceLeaseLiabilityNoncurrent" id="Fact_2897bf9ae23745e99a9c1d1ef250b3db" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:FinanceLeaseLiabilityNoncurrent" id="Fact_ca742f7dd7a24b1ab1630d94c691e193" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">1</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255); text-align: center;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">COMMITMENTS AND CONTINGENCIES (Note 6)</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;"><span style="-sec-ix-hidden:Fact_34a595a0c62f48acb4e6be9a8ed0ae1c"> </span></td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;"><span style="-sec-ix-hidden:Fact_e0651627809640b292897958433181f4"> </span></td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255); text-align: center;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">STOCKHOLDERS&#8217; EQUITY:</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Common stock, $<span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:CommonStockParOrStatedValuePerShare" id="Fact_af70c7f62d8a42698a7ffb29891ea158" contextRef="c20240331" unitRef="U003" decimals="4" scale="0" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:CommonStockParOrStatedValuePerShare" id="Fact_67ad98c9aca24ba8a594ce8c89c08b06" contextRef="c20231231" unitRef="U003" decimals="4" scale="0" format="ixt:num-dot-decimal">0.0024</ix:nonFraction></ix:nonFraction></span> par value; <span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:CommonStockSharesAuthorized" id="Fact_10d33001bd8a4b708a13ea2111c77547" contextRef="c20240331" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:CommonStockSharesAuthorized" id="Fact_05c4c121b89f421f98b20e1e3bdd917e" contextRef="c20231231" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">25,000,000</ix:nonFraction></ix:nonFraction></span> shares authorized; <span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:CommonStockSharesIssued" id="Fact_3cef10a11764446d9e282f6524a327d8" contextRef="c20240331" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">9,826,348</ix:nonFraction></span>
                and <span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:CommonStockSharesIssued" id="Fact_83ea9d00f0eb43668b9ae6615ee8aaa0" contextRef="c20231231" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">9,823,621</ix:nonFraction></span> shares issued at <span style="text-indent: 0pt;">March 31</span>, <span style="text-indent: 0pt;">2024</span> and December 31, <span style="text-indent: 0pt;">2023</span>, respectively; <span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:CommonStockSharesOutstanding" id="Fact_304d4910515b4c3b92a82deb23a70c36" contextRef="c20240331" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">8,401,972</ix:nonFraction></span> and <span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:CommonStockSharesOutstanding" id="Fact_57df0afafed8470d99fc99f10a787aa5" contextRef="c20231231" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">8,399,245</ix:nonFraction></span> shares outstanding at <span style="text-indent: 0pt;">March 31</span>,
                <span style="text-indent: 0pt;">2024</span> and December 31, <span style="text-indent: 0pt;">2023</span>,
                respectively </div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:CommonStockValue" id="Fact_86a951983e904f92bd6f529a6be80fc8" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">23</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:CommonStockValue" id="Fact_d963ecd1aeaf46ffa26e5b4a762d7524" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">23</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Paid-in capital</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:AdditionalPaidInCapital" id="Fact_b25aaa898f8447d08deaedfd3c1c9a54" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,178</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:AdditionalPaidInCapital" id="Fact_c749042e61ee41b1af7383819983ddf1" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">3,981</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Retained earnings</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:RetainedEarningsAccumulatedDeficit" id="Fact_5d919692d0154de7b43c9af45fd1dd13" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">64,184</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:RetainedEarningsAccumulatedDeficit" id="Fact_631d680706e2489cbaebfe4c28826c67" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">63,659</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Treasury stock at cost (<span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:TreasuryStockCommonShares" id="Fact_f55a4907f73940b485a040204406f87d" contextRef="c20240331" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:TreasuryStockCommonShares" id="Fact_13dd1be091a7489ab34f6ffdc13d6c61" contextRef="c20231231" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">1,424,376</ix:nonFraction></ix:nonFraction></span> shares at <span style="text-indent: 0pt;">March 31, 2024</span> and <span style="text-indent: 0pt;">December 31, 2023</span>
                respectively)</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">(<ix:nonFraction name="us-gaap:TreasuryStockCommonValue" id="Fact_95e3dbf4d3dc48628c3ce62a07cc30ef" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,773</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">)</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">(<ix:nonFraction name="us-gaap:TreasuryStockCommonValue" id="Fact_152d00a129594a6fa9afdcfcda3fc243" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,773</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">)</div>
            </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Accumulated other comprehensive loss, net of tax </div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">(<ix:nonFraction name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" id="Fact_575f180949724a33aa35bf42e4c0e306" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">1,374</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">)</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">(<ix:nonFraction name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" id="Fact_cc94befd8c434ea684d35d1228e17802" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">1,544</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">)</div>
            </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Total stockholders&#8217; equity</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_f883230d5eaf479fa435f783bf88261f" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">57,238</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_c6ee96b092f44dc88a0f39788718f460" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">56,346</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; text-align: left; width: 76%; padding-bottom: 4px;">
              <div style="color: rgb(0, 0, 0); font-weight: bold;">TOTAL LIABILITIES AND STOCKHOLDERS&#8217; EQUITY</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
            </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:LiabilitiesAndStockholdersEquity" id="Fact_197ad2ddc1fb41eb92432bd8c7a403ca" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">72,432</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
            </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:LiabilitiesAndStockholdersEquity" id="Fact_15f1e2a04f714518b29ae79d86c2c952" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">72,135</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>

  </tr>


</table>
      <div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

      <div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt;">The accompanying notes are an integral part of these Condensed Consolidated Financial Statements.</div>

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

      <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div style="width: 100%;" class="BRPFPageFooter"></div>

        <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">2</span></div>

        <div class="BRPFPageBreak" style="page-break-after:always;">
          <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

        <div style="width: 100%;" class="BRPFPageHeader">
          <div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 8pt; font-style: italic; font-variant: normal; text-transform: none;"><a href="#TABLEOFCONTENTS">Table of Contents</a></div>

        </div>

      </div>

    </div>

  </div>


  <div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000;">
    <div>
      <div style="color: rgb(0, 0, 0); font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">Tandy Leather Factory, Inc.</div>

      <div style="color: rgb(0, 0, 0); font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">
        <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-weight: bold;">Condensed Consolidated Statements of Operations and Comprehensive Income</div>

      </div>

      <div style="color: rgb(0, 0, 0); font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">(amounts in thousands, except share and per share data)</div>

      <div style="color: rgb(0, 0, 0); font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">(Unaudited) </div>

      <div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

      <table cellspacing="0" cellpadding="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%;">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;">
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">Three Months Ended March 31,</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;">
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">2024<br/>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;">
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">2023<br/>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Net sales</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_28ab1dc5f0a2424d8e9507d5f14104fc" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">19,275</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_f76448f774c349d886f63f859102ba20" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">20,360</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Cost of sales</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:CostOfGoodsAndServicesSold" id="Fact_08ad0ab3b90d4a29bcd05a5a2412c222" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">8,355</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:CostOfGoodsAndServicesSold" id="Fact_3001a87b92ac45178335e06196f78154" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">8,541</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);">Gross profit</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:GrossProfit" id="Fact_ad1521a8e2b64a6082f4b08d9898ae70" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">10,920</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:GrossProfit" id="Fact_1e45e4e3b4874a0481a1321d4d8ba72f" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">11,819</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Operating expenses</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OperatingCostsAndExpenses" id="Fact_6ed6ccd523dc416e80f9983374ac1430" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">10,271</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OperatingCostsAndExpenses" id="Fact_d52f31b1a1d54a1aa6fd79b5821860dd" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">10,838</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="color: rgb(0, 0, 0);">
                <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; text-indent: 0pt; margin-left: 9pt;">Income from operations</div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OperatingIncomeLoss" id="Fact_c1838608426a4bc68dbd6c106f0a789e" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">649</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OperatingIncomeLoss" id="Fact_98932bab7fba4fb4b34a99ce01a86f3f" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">981</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Other (income) expense:</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Interest income<br/>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">(<ix:nonFraction name="us-gaap:InterestIncomeExpenseNet" id="Fact_c2da8dd0893244b498e3547c076b4fbb" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">84</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">)</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:InterestIncomeExpenseNet" id="Fact_e330165548d24674858cfc5fd059ddd2" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Other, net</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OtherNonoperatingIncomeExpense" id="Fact_108d6a79397547c48d7e11915d592dac" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">26</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OtherNonoperatingIncomeExpense" id="Fact_9d23b23709c44bbbac8a99ecacb73f07" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">39</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
              <div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);">Total other (income) expense<br/>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">(<ix:nonFraction name="us-gaap:NonoperatingIncomeExpense" id="Fact_18fa3be61f484139a1c6e089534ab407" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">58</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">)</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:NonoperatingIncomeExpense" id="Fact_b266839f55734d1c8a9e0ee18ce1c75c" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">39</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
              <div style="color: rgb(0, 0, 0);">
                <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; text-indent: 9pt;">Income before income taxes</div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" id="Fact_6b114d3106eb415bb6c8bd352b3580a8" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">707</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" id="Fact_65c36355252f4445a090cedf55f3a9e1" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">942</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
              <div style="color: rgb(0, 0, 0);">
                <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';">Income tax provision</div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" id="Fact_6f0a9abd2b854880a4cea52c1b5c55c1" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">182</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" id="Fact_bc0ef930725142b88fecbd19535f4d09" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">278</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;">
              <div style="color: rgb(0, 0, 0);">
                <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; margin-left: 9pt;">Net income</div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_e1da1b23cdf8445382ee1559f1ca10ff" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">525</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_11c09da99dc541c58944950ba1d6e947" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">664</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
              <div style="color: rgb(0, 0, 0);">
                <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';">Foreign currency translation adjustments, net of tax</div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_9f58233529184502bbb78e902c17d11f" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">170</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">(<ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_890fc1bf9013436da25f0f2340b633fd" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">39</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">)</div>
            </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;">
              <div style="color: rgb(0, 0, 0);">
                <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; text-indent: 0pt; margin-left: 9pt;">Comprehensive income</div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" id="Fact_8d5799618a2f4ddea292ae2625003114" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">695</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" id="Fact_01793ba7ebe541fba3a045972bfb1d8c" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">625</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
              <div style="color: rgb(0, 0, 0);">
                <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';">Net income per common share:</div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);">Basic</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_af8bb7d74ccc49718439d1098784cea9" contextRef="c20240101to20240331" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.06</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_eaffbdda29134a7c956b7bff6860d072" contextRef="c20230101to20230331" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.08</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
              <div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);">Diluted</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_38046fb445494e13844f410a6746d194" contextRef="c20240101to20240331" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.06</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_b50308a356a34c2a966f7b204c6cd206" contextRef="c20230101to20230331" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.08</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Weighted average number of shares outstanding:</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);">Basic</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" id="Fact_00df9490fe9e42b088c6215bca442e03" contextRef="c20240101to20240331" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">8,400,354</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" id="Fact_92588e99a08f4138be083aa4c405f3d8" contextRef="c20230101to20230331" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">8,303,117</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
              <div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);">Diluted</div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" id="Fact_69f91970b59748d19193498c1d859c4e" contextRef="c20240101to20240331" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">8,500,354</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" id="Fact_aa28eee9a5574e6faff73c2a132c37ce" contextRef="c20230101to20230331" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">8,350,166</ix:nonFraction></div>
            </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>


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

      <div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt;">The accompanying notes are an integral part of these Condensed Consolidated Financial Statements.</div>

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

      <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
        <div style="width: 100%;" class="BRPFPageFooter"></div>

        <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">3</span></div>

        <div style="page-break-after:always;" class="BRPFPageBreak">
          <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

        <div style="width: 100%;" class="BRPFPageHeader">
          <div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 8pt; font-style: italic; font-variant: normal; text-transform: none;"><a href="#TABLEOFCONTENTS">Table of Contents</a></div>

        </div>

      </div>

    </div>

  </div>


  <div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000;">
    <div>
      <div style="color: rgb(0, 0, 0); font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">Tandy Leather Factory, Inc.</div>

      <div style="color: rgb(0, 0, 0); font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">
        <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-weight: bold;">Condensed Consolidated Statements of Cash Flows</div>

      </div>

      <div style="color: rgb(0, 0, 0); font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;"> (amounts in thousands)</div>

      <div style="color: rgb(0, 0, 0); font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">(Unaudited)</div>

      <div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" colspan="6">
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">For the Three Months Ended March 31,</div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">2024</div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">2023<br/>
              </div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;">Cash flows from operating activities:</div>
            </td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt;">Net income</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
              <div>$</div>
            </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
              <div><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_afe992936f844416b8ec4e0642eda8cb" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">525</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_e470e02c58864ab59f66c55f2a1e2d10" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">664</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
              <div>
                <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';">Adjustments to reconcile net income to net cash provided by operating activities:</div>
              </div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt;">Depreciation and amortization</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
              <div><ix:nonFraction name="us-gaap:CostOfGoodsAndServicesSoldDepreciation" id="Fact_5d306f983ba0498dba2fed642408e418" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">321</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:CostOfGoodsAndServicesSoldDepreciation" id="Fact_9d059479e7944a349a773567501ebae2" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">285</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt;">Operating lease asset amortization</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
              <div><ix:nonFraction name="us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense" id="Fact_69ca229d341848a68aa7ded03ac96b2f" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">919</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense" id="Fact_7b4a16c658e04ba38adc1f2b81daec3c" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">834</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" rowspan="1">Loss on disposal of assets<br/>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" rowspan="1" colspan="1"><ix:nonFraction name="us-gaap:GainLossOnDispositionOfAssets1" id="Fact_4ceba12e5dc24afd8e0e800a4417272d" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction><br/>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" rowspan="1" colspan="1"><ix:nonFraction name="us-gaap:GainLossOnDispositionOfAssets1" id="Fact_4aa8f6e798b945be99d0466922c734e7" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">27</ix:nonFraction></td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt;">Stock-based compensation</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
              <div><ix:nonFraction name="us-gaap:ShareBasedCompensation" id="Fact_4a60c5e53a5347d1bd713fefaa2f3d72" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">197</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensation" id="Fact_05ede0e37f234aa19c82a4baf8e9a20a" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">228</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt;">Changes in operating assets and liabilities</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
              <div style="text-indent: -7.2pt; margin-left: 16.2pt;">Accounts receivable-trade</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
              <div>(<ix:nonFraction name="us-gaap:IncreaseDecreaseInAccountsReceivable" id="Fact_469f8b97f1f7415da1d2814d69cf02d0" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">158</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
              <div>)</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
              <div style="color: rgb(0, 0, 0);">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInAccountsReceivable" id="Fact_dabc86ad17ae465fa2b563c2397566c6" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">104</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);">)</div>
            </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 16.2pt;">Inventory</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
              <div><ix:nonFraction name="us-gaap:IncreaseDecreaseInInventories" id="Fact_096a43d6e35345a295e31300db774b2d" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">1,184</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:IncreaseDecreaseInInventories" id="Fact_96a1de920fe6427ab54a9e01cf0cc156" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">2,356</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
              <div style="text-indent: -7.2pt; margin-left: 16.2pt;">Prepaid expenses</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
              <div><ix:nonFraction name="us-gaap:IncreaseDecreaseInPrepaidExpense" id="Fact_039ceca9acba48cb89985abc7d8296ea" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">72</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
              <div style="color: rgb(0, 0, 0);">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInPrepaidExpense" id="Fact_68e8dd6e5ecf4dd0af86becdaf14e5cc" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">130</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);">)</div>
            </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 16.2pt;">Other current assets</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
              <div><ix:nonFraction name="us-gaap:IncreaseDecreaseInOtherCurrentAssets" id="Fact_fe5302e6147a46c5ae71cf7dd317f2e9" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">14</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
              <div style="color: rgb(0, 0, 0);">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInOtherCurrentAssets" id="Fact_491f602948a344b3845989ef3edec1dd" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">13</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);">)</div>
            </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
              <div style="text-indent: -7.2pt; margin-left: 16.2pt;">Accounts payable-trade</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
              <div>(<ix:nonFraction name="us-gaap:IncreaseDecreaseInAccountsPayable" id="Fact_c96a8bd3728f4af0bba7809769bbd558" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">115</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
              <div>)</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
              <div style="color: rgb(0, 0, 0);">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInAccountsPayable" id="Fact_ca15fff38ecb4ff189b818392e1504bd" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">2,053</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);">)</div>
            </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 16.2pt;">Accrued expenses and other liabilities</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
              <div>(<ix:nonFraction name="us-gaap:IncreaseDecreaseInAccruedLiabilities" id="Fact_9b82894407074b9f8452abfb20b2f340" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">1,142</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
              <div>)</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
              <div style="color: rgb(0, 0, 0);">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInAccruedLiabilities" id="Fact_0e6e66ff0bd445bd9018c46734ae83a7" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">694</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);">)</div>
            </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
              <div style="text-indent: -7.2pt; margin-left: 16.2pt;">Income taxes, net</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
              <div><ix:nonFraction name="us-gaap:IncreaseDecreaseInDeferredIncomeTaxes" id="Fact_ab2074bc20e94a28830c7dbb6e21bfa9" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">163</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:IncreaseDecreaseInDeferredIncomeTaxes" id="Fact_f98d9f3b08284482b86938b1ab3dacf0" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">278</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 16.2pt;">Other assets</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
              <div>(<ix:nonFraction name="us-gaap:IncreaseDecreaseInOtherNoncurrentAssets" id="Fact_f736b47f9e4f451d893c54a6715a4536" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">2</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
              <div>)</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
              <div style="color: rgb(0, 0, 0);">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInOtherNoncurrentAssets" id="Fact_c32c1139021049b9b92d23d88cdbfe3b" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">30</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);">)</div>
            </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
              <div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);">Operating lease liabilities</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
              <div style="color: rgb(0, 0, 0);">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInOperatingLeaseLiability" id="Fact_086a534cae7b43948ab0a46cd58bb461" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">892</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);">)</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
              <div style="color: rgb(0, 0, 0);">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInOperatingLeaseLiability" id="Fact_7253ba0442d044e495e002816e1abeb3" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">851</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);">)</div>
            </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;">
              <div style="text-indent: 1.8pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Total adjustments</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" id="Fact_9add301286934b06ac89dbb396719083" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">561</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" id="Fact_656485542e914606afe181c1345ebe54" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">133</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; text-align: left; width: 76%;" rowspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1" rowspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1" rowspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1" rowspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1" rowspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1" rowspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1" rowspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1" rowspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1" rowspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; text-align: left; width: 76%; background-color: rgb(204, 238, 255);">
              <div style="font-weight: bold;">
                <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-weight: bold; text-indent: 9pt;">Net cash provided by operating activities</div>
              </div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">
              <div style="color: rgb(0, 0, 0); font-weight: normal;"><ix:nonFraction name="us-gaap:NetCashProvidedByUsedInOperatingActivities" id="Fact_c2af07cf40504a0fb3863d68e7713c4a" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,086</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">
              <div style="color: rgb(0, 0, 0); font-weight: normal;"><ix:nonFraction name="us-gaap:NetCashProvidedByUsedInOperatingActivities" id="Fact_d7a467a27f7a4528a6ef47f8ce72ac48" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">797</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;">Cash flows from investing activities:</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Purchase of property and equipment</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
              <div style="color: rgb(0, 0, 0);">(<ix:nonFraction name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" id="Fact_0e1b8a61db48485dad07cd192176e387" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,227</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);">)</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
              <div style="color: rgb(0, 0, 0);">(<ix:nonFraction name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" id="Fact_05556119cbdd43aebf16f66d8d972f68" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">87</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);">)</div>
            </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; text-align: left; width: 76%; background-color: rgb(204, 238, 255);">
              <div style="color: rgb(0, 0, 0); font-weight: bold;">
                <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-weight: bold;">Net cash used in investing activities</div>
              </div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">
              <div style="color: rgb(0, 0, 0); font-weight: normal;">(<ix:nonFraction name="us-gaap:NetCashProvidedByUsedInInvestingActivities" id="Fact_47f74efe31d24dd9855eaab1a527161d" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">1,227</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0); font-weight: normal;">)</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">
              <div style="color: rgb(0, 0, 0); font-weight: normal;">(<ix:nonFraction name="us-gaap:NetCashProvidedByUsedInInvestingActivities" id="Fact_011f12bbaf0d4984814f929f220e4fb1" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">87</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0); font-weight: normal;">)</div>
            </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);" rowspan="1">
              <div style="color: rgb(0, 0, 0); text-indent: -7.2pt; font-family: 'Times New Roman'; font-weight: bold; margin-left: 7.2pt;">Cash flows from financing activities:</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt;">Payment of finance lease obligations</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
              <div style="color: rgb(0, 0, 0);">(<ix:nonFraction name="us-gaap:FinanceLeasePrincipalPayments" id="Fact_79576add873747dabed9e17088a219de" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">1</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);">)</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:FinanceLeasePrincipalPayments" id="Fact_0c9ebe11742d4007b357682c77041e76" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; text-align: left; width: 76%; background-color: rgb(204, 238, 255);">
              <div style="color: rgb(0, 0, 0); font-weight: bold;">
                <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-weight: bold;">Net cash used in financing activities</div>
              </div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">
              <div style="color: rgb(0, 0, 0); font-weight: normal;">(<ix:nonFraction name="us-gaap:NetCashProvidedByUsedInFinancingActivities" id="Fact_52b5a6396326442d92ad66588a1be6fe" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">1</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0); font-weight: normal;">)</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">
              <div style="color: rgb(0, 0, 0); font-weight: normal;"><ix:nonFraction name="us-gaap:NetCashProvidedByUsedInFinancingActivities" id="Fact_1038047a2ccc47d6bc708c0e60ff64a9" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: rgb(204, 238, 255);">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Effect of exchange rate changes on cash and cash equivalents</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" id="Fact_080bdd037b04484ea5579b7c14fff774" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">298</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">
              <div style="color: rgb(0, 0, 0);">(<ix:nonFraction name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" id="Fact_98ef8dbc02474477aab99427288ae4e1" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">39</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);">)</div>
            </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Net increase in cash and cash equivalents</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" id="Fact_c648e453dbe943ee9f38ad469a38a4e7" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">156</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" id="Fact_5d05fd4badb049b8949ff918ccfd5dbb" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">671</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;" rowspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: rgb(204, 238, 255);">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Cash and cash equivalents, beginning of period</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" id="Fact_5acae741e051429da33001ab9e4162e6" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">12,159</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" id="Fact_3a0e050ab64445d7be3cc8dba22e693d" contextRef="c20221231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">7,975</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;">
              <div style="color: rgb(0, 0, 0);">
                <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';">Cash and cash equivalents, end of period</div>
              </div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" colspan="1">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" id="Fact_da0d3ad6306c47cf8d9980e7f11ba572" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">12,315</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" colspan="1">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" id="Fact_90edb0cf2a4f4de6a1f4b7ed34f115be" contextRef="c20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">8,646</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>


</table>
      <div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

      <div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt;">The accompanying notes are an integral part of these Condensed Consolidated Financial Statements.</div>

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

      <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
        <div class="BRPFPageFooter" style="width: 100%;"></div>

        <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">4</span></div>

        <div style="page-break-after:always;" class="BRPFPageBreak">
          <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

        <div style="width: 100%;" class="BRPFPageHeader">
          <div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 8pt; font-style: italic; font-variant: normal; text-transform: none;"><a href="#TABLEOFCONTENTS">Table of Contents</a></div>

        </div>

      </div>

    </div>

  </div>


  <div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000;">
    <div style="color: rgb(0, 0, 0); font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">Tandy Leather Factory, Inc.</div>

    <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">
      <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-weight: bold;">Condensed Consolidated Statements of Stockholders&#8217; Equity</div>

    </div>

    <div style="color: rgb(0, 0, 0); font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;"> (amounts in thousands, except share data)</div>

    <div style="color: rgb(0, 0, 0); font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">(Unaudited)</div>

    <div style="color: rgb(0, 0, 0); font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;"><br/>
    </div>

    <div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
    </div>

    <table cellspacing="0" cellpadding="0" border="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%;">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);">
            <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">Number of </div>
            <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">Shares </div>
            <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">Common </div>
            <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">Stock</div>
            <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"> Outstanding</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);">
            <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">Par Value</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);">
            <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"> Paid-in Capital</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);">
            <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"> Treasury Stock</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);">
            <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"> Retained Earnings</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);">
            <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">Accumulated<br/>
              Other<br/>
              Comprehensive<br/>
              Income (Loss)</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);">
            <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">Total</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 16%; background-color: #CCEEFF;">
            <div style="font-weight: bold; text-align: center;">Balance, December 31, 2023</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:SharesOutstanding" id="Fact_b8c5808aafea49959365bc54a5b0dc4b" contextRef="c20231231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">8,399,245</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_ce8a9973629a488d916317070d295499" contextRef="c20231231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">23</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_193502deb97d4903b684c85ba1ff2460" contextRef="c20231231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">3,981</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">(<ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_87bcfc8872774c4eb11ee5614fa896a1" contextRef="c20231231_StatementEquityComponentsAxis_TreasuryStockCommonMember" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">9,773</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">)</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_6192c4d0bb7c44b9acabc1b53cf93001" contextRef="c20231231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">63,659</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">(<ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_445c88f2b73945b68d48e969e1da4be1" contextRef="c20231231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">1,544</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">)</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_c7c47eee09cc4ca08e17afde33dbe01c" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">56,346</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 16%;">
            <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Stock-based compensation expense</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0);">-</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_22ee2308bb674e9f8410219b386ee86b" contextRef="c20240101to20240331_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_247d1c2fbb634d119c2915059a5a49af" contextRef="c20240101to20240331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">197</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_49c3b7a93ee54062bf460a1f79813051" contextRef="c20240101to20240331_StatementEquityComponentsAxis_TreasuryStockCommonMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_a72b6b01cc9c48e49a2e5eb56b85a9e5" contextRef="c20240101to20240331_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_c38349dfac5f41e39cb243650d511b19" contextRef="c20240101to20240331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0); font-weight: normal;"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_e1361c9c07c14e3a82e81c13101c3870" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">197</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 16%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0);">
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';">Vesting of restricted stock units</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross" id="Fact_86077b2f88384003b4b10e085f0c46cc" contextRef="c20240101to20240331_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">2,727</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" id="Fact_1caba3b3c804461aaaea7b12c1793cb8" contextRef="c20240101to20240331_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" id="Fact_7531e703369d4528a97243d17d06c4a6" contextRef="c20240101to20240331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" id="Fact_a53c22676262467d831dbb83ee0d8998" contextRef="c20240101to20240331_StatementEquityComponentsAxis_TreasuryStockCommonMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" id="Fact_a0d13e8703f54e20ac1f0473f1859528" contextRef="c20240101to20240331_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" id="Fact_47e51788ee864bfba890e716eddcf8b8" contextRef="c20240101to20240331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" id="Fact_c81f15c956b044df91839dcd02611cea" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" rowspan="1" style="vertical-align: bottom; width: 16%;"><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">Repurchase of common stock</span></td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%;"><ix:nonFraction name="us-gaap:StockRepurchasedAndRetiredDuringPeriodShares" id="Fact_7e2ce360c31446d4ac571c359377d3b1" contextRef="c20240101to20240331_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF" scale="0" format="ixt:fixed-zero">-</ix:nonFraction></td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%;"><ix:nonFraction name="us-gaap:StockRepurchasedAndRetiredDuringPeriodValue" id="Fact_7f9b66d025954361b95650d3118e6399" contextRef="c20240101to20240331_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%;"><ix:nonFraction name="us-gaap:StockRepurchasedAndRetiredDuringPeriodValue" id="Fact_4e83425728ae45b5bea83f8789e1a69b" contextRef="c20240101to20240331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%;"><ix:nonFraction name="us-gaap:StockRepurchasedAndRetiredDuringPeriodValue" id="Fact_3b5d12aef0f54933bec5eec77e074f07" contextRef="c20240101to20240331_StatementEquityComponentsAxis_TreasuryStockCommonMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%;"><ix:nonFraction name="us-gaap:StockRepurchasedAndRetiredDuringPeriodValue" id="Fact_9d87d27f5a844848bd3d6cb076b3befe" contextRef="c20240101to20240331_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%;"><ix:nonFraction name="us-gaap:StockRepurchasedAndRetiredDuringPeriodValue" id="Fact_08b27787fce7470c95c7ac9f9d4a6324" contextRef="c20240101to20240331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%;"><ix:nonFraction name="us-gaap:StockRepurchasedAndRetiredDuringPeriodValue" id="Fact_d49acdb88534437a8ee87cebacfd1aee" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 16%; background-color: #CCEEFF;">
            <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Net income</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0);">-</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_faae8353a0884e3d8a24eac9c00f6e19" contextRef="c20240101to20240331_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_78d09ffaa49d4a8f842fc0006f4e017f" contextRef="c20240101to20240331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_c605f686055b4184948625ce7c40fe8c" contextRef="c20240101to20240331_StatementEquityComponentsAxis_TreasuryStockCommonMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_c86e937ba4a44448b013f8409b14bb5f" contextRef="c20240101to20240331_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">525</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_e186f7e1f8a3450f9408e74e2180d836" contextRef="c20240101to20240331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-weight: normal;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_07d11b1eb64a4ac988e1bf0427fa2a74" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">525</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 16%; padding-bottom: 2px;">
            <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Foreign currency translation adjustments, net of tax</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);">
            <div style="color: rgb(0, 0, 0);">-</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_600663b86f644596af670fc3013f627c" contextRef="c20240101to20240331_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_2cc5a59b5efe4587a632b2d641f0236b" contextRef="c20240101to20240331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_d99e8c1e14644f5095ed046c091c22fd" contextRef="c20240101to20240331_StatementEquityComponentsAxis_TreasuryStockCommonMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_47f1e318e31a40a683af7c2a224eded1" contextRef="c20240101to20240331_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_bc260e42e48047c1a9120ec77a46b849" contextRef="c20240101to20240331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">170</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);">
            <div style="color: rgb(0, 0, 0); font-weight: normal;"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_ae8a7ce4e54b4cd2810e33c1d4289407" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">170</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 16%; padding-bottom: 4px; background-color: #CCEEFF;">
            <div style="font-weight: bold; text-align: center;">Balance, March 31, 2024</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
            <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:SharesOutstanding" id="Fact_d88152adbc9b4650ba5035beefcb79c9" contextRef="c20240331_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">8,401,972</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
            <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_494246aa9b8344c096fafa7a1cb27d56" contextRef="c20240331_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">23</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
            <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_f609dd983d394fccb8207dc55a6fb8e7" contextRef="c20240331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,178</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">(<ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_b26470cb384f4b4ebd85934f2d065f96" contextRef="c20240331_StatementEquityComponentsAxis_TreasuryStockCommonMember" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">9,773</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">)</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
            <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_cbb245c59e2f42dbbbdba48fa7d39c23" contextRef="c20240331_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">64,184</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">(<ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_c8dec5996079461e951367e9dc33abe1" contextRef="c20240331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">1,374</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">)</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
            <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_05f0374e6ab84a01a15b718b877943c0" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">57,238</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 16%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 16%; background-color: #CCEEFF;">
            <div style="font-weight: bold; text-align: center;">Balance, December 31, 2022</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:SharesOutstanding" id="Fact_160d1d5c672f460fa8f4b8d1c90ede3e" contextRef="c20221231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">8,293,149</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-weight: bold; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-weight: bold; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">$</td>

    <td valign="bottom" colspan="1" style="font-weight: bold; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_339bc60e60bf46e5a7197b606ddf31f9" contextRef="c20221231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">23</ix:nonFraction></td>

    <td valign="bottom" colspan="1" style="font-weight: bold; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_82eb018757fe4e90b95e194cefc9fdd1" contextRef="c20221231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">3,222</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">(<ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_1d32d4fc5b954aa5ae23b75f9c0b33d7" contextRef="c20221231_StatementEquityComponentsAxis_TreasuryStockCommonMember" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">9,773</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">)</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_78617ebb8f7e4bfda6f9116d491052f8" contextRef="c20221231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">59,891</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">(<ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_41819c31b72a4ecb9ade84c2134a35cd" contextRef="c20221231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">1,900</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">)</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_1fc112bf63ef4ea296c4f12d66bb8a0e" contextRef="c20221231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">51,463</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 16%;">
            <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Stock-based compensation expense</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0);">-</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_5cf7bbe8e5db475694b8f4b896c8dc71" contextRef="c20230101to20230331_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_484e86501e7b4ccea17155630bb1ba07" contextRef="c20230101to20230331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">228</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_96071abbc37342828682ae8f01e11118" contextRef="c20230101to20230331_StatementEquityComponentsAxis_TreasuryStockCommonMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_e75d1c78dee8468bacffe61f6e06caa3" contextRef="c20230101to20230331_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_29da05db71a147a4ae581608293befb6" contextRef="c20230101to20230331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0); font-weight: normal;"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_5640774c8edb444d9e346df08e65756c" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">228</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 16%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0);">
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';">Vesting of restricted stock units</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross" id="Fact_720ec2cf0e834e7bb3726ab16c056ff4" contextRef="c20230101to20230331_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">17,518</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" id="Fact_22bd1872188041bdade2064d5176cf35" contextRef="c20230101to20230331_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" id="Fact_55b4c1b4d856433885a80dc8dbe97456" contextRef="c20230101to20230331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" id="Fact_27835bcbe4874fc59425001a1a38c8fb" contextRef="c20230101to20230331_StatementEquityComponentsAxis_TreasuryStockCommonMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" id="Fact_22d596acb3d644418b16612dff21ebbc" contextRef="c20230101to20230331_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" id="Fact_33ce46dae004425382e942fa0fefede7" contextRef="c20230101to20230331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" id="Fact_8fa40c36e6f54d4e9710f322b0d71fe7" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 16%;">
            <div style="color: rgb(0, 0, 0);">
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';">Net income</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">-</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_0aad320f435140348e456013aacb8428" contextRef="c20230101to20230331_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_e772bbb0fa3441fc8bd977632ca888d1" contextRef="c20230101to20230331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_19f32acb9ebc4e9998c894328aa82e8f" contextRef="c20230101to20230331_StatementEquityComponentsAxis_TreasuryStockCommonMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_359afc7f85d34f55bf57f4c89a83e6ad" contextRef="c20230101to20230331_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">664</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_2d96d987af0d45478cd17fee399dcac5" contextRef="c20230101to20230331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0); font-weight: normal;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_fc4b1c5c80204ded84a5aba5fc77054c" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">664</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 16%; padding-bottom: 2px; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0);">
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman';">Foreign currency translation adjustments, net of tax</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);">-</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_616faa29ce114fafaffad9bfbcd4637c" contextRef="c20230101to20230331_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_6a1cd8d2009a405d8d4b0a2f4d341a4f" contextRef="c20230101to20230331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_c79f56d22580457e967e044e14e50d27" contextRef="c20230101to20230331_StatementEquityComponentsAxis_TreasuryStockCommonMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
            <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_41a8e27cc90a4effaa8ff31cdfc2941b" contextRef="c20230101to20230331_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">-</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
            <div style="color: rgb(0, 0, 0);">(<ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_73e8b9c8699d40a7bad7449ed7e2ecec" contextRef="c20230101to20230331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">39</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">
            <div style="color: rgb(0, 0, 0);">)</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
            <div style="color: rgb(0, 0, 0); font-weight: normal;">(<ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_1c558ab45a6a4fd69f80021bb799efce" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">39</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">
            <div style="color: rgb(0, 0, 0); font-weight: normal;">)</div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 16%; padding-bottom: 4px;">
            <div style="font-weight: bold; text-align: center;">Balance, March 31, 2023</div>
          </td>

    <td valign="bottom" colspan="1" style="font-weight: bold; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-weight: bold; text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="font-weight: bold; vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:SharesOutstanding" id="Fact_49292fae248a47c3b7bc92925ccf231d" contextRef="c20230331_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">8,310,667</ix:nonFraction></td>

    <td valign="bottom" colspan="1" style="font-weight: bold; text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);">
            <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_267c355fdc1c440e9d91feb7b3a9e346" contextRef="c20230331_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">23</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);">
            <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_2fd18069852148ff8b47e2de1e89fc3f" contextRef="c20230331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">3,450</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">(<ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_16150866d7b64f528d9af382a387b1ca" contextRef="c20230331_StatementEquityComponentsAxis_TreasuryStockCommonMember" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">9,773</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">)</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);">
            <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_95e1a08ac48640699d8f0669329d1e51" contextRef="c20230331_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">60,555</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">(<ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_84582054a3ea4b339790817e948d687e" contextRef="c20230331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">1,939</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); white-space: nowrap;">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">)</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);">
            <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);">
            <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_dfc67567ffa744048bfafebb4beeec9d" contextRef="c20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">52,316</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>

  </tr>


</table>
    <div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
    </div>

    <div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt;">The accompanying notes are an integral part of these Condensed Consolidated Financial Statements.</div>

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

    <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div class="BRPFPageFooter" style="width: 100%;"></div>

      <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">5</span></div>

      <div class="BRPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

      <div style="width: 100%;" class="BRPFPageHeader">
        <div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 8pt; font-style: italic; font-variant: normal; text-transform: none;"><a href="#TABLEOFCONTENTS">Table of Contents</a></div>

      </div>

    </div>

  </div>


  <div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000;">
    <div>
      <div>
        <div style="text-align: center; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">TANDY LEATHER FACTORY, INC.</div>

        <div style="text-align: center; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;"><!--Anchor--><!--Anchor--><!--Anchor--><a id="NOTES"><!--Anchor--></a>NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS</div>

        <div style="text-align: center; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">(UNAUDITED)<br/>
        </div>

        <div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>


        <ix:nonNumeric name="us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" id="Text_b31f60fb8f7b413b8381650964e68434" contextRef="c20240101to20240331" escape="true" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f1">
<div style="text-align: justify; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">1.&#160; BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES</div>
</ix:nonNumeric>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f1" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f2">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f2" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f3">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">Tandy Leather Factory, Inc. (&#8220;TLF,&#8221; &#8220;we,&#8221; &#8220;our,&#8221; &#8220;us,&#8221; &#8220;the&#8221; Company,&#8221; &#8220;Tandy,&#8221; or &#8220;Tandy Leather&#8221; mean Tandy Leather Factory, Inc., together with its subsidiaries)<span style="font-style: italic;"> </span>is one of the world&#8217;s largest specialty retailers of leather and leathercraft-related items.&#160; Founded in 1919 in Fort Worth, Texas, the Company introduced leathercrafting to millions of American and later
          Canadian and other international customers and has built a track record as the trusted source of quality leather, tools, hardware, supplies, kits and teaching materials for leatherworkers everywhere.&#160; Today, our mission remains to build on our
          legacy of inspiring the timeless art and trade of leatherworking.</div>
</ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f3" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f4">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f4" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f5">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">What differentiates Tandy from the competition is our high brand awareness and strong brand equity and loyalty, our network of retail stores that provides
          convenience, a high-touch customer service experience, and a hub for the local leathercrafting community, and our 100-year heritage. We believe that this combination of qualities is unique to Tandy and gives the brand competitive advantages that
          are difficult for others to replicate.</div>
</ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f5" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f6">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f6" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f7">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">We sell our products primarily through company-owned stores and through orders generated from our global websites, <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">and through direct account representatives in our commercial division</span>. We also manufacture leather lace, cut
          leather pieces and most of the do-it-yourself kits that are sold in our stores and on our websites.&#160; We also offer production services to our business customers such as cutting (&#8220;clicking&#8221;), splitting, and some assembly. We maintain our principal
          offices at 1900 Southeast Loop 820, Fort Worth, Texas 76140.</div>
</ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f7" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f8">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f8" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f9">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">The Company currently operates a total of <ix:nonFraction name="us-gaap:NumberOfStores" id="Fact_a5184645846346019da2a34646a365e8" contextRef="c20240331" unitRef="U004" decimals="0" scale="0" format="ixt:num-dot-decimal">102</ix:nonFraction> retail
          stores. There are <ix:nonFraction name="us-gaap:NumberOfStores" id="Fact_182cd276194a4c548053d362ab1901de" contextRef="c20240331_StatementGeographicalAxis_US" unitRef="U004" decimals="0" scale="0" format="ixt:num-dot-decimal">91</ix:nonFraction> stores in the United States (&#8220;U.S.&#8221;), <ix:nonFraction name="us-gaap:NumberOfStores" id="Fact_6d815a5188fd469e863f47c8b1befc52" contextRef="c20240331_StatementGeographicalAxis_CA" unitRef="U004" decimals="INF" scale="0" format="ixt-sec:numwordsen">ten</ix:nonFraction> stores in Canada and <ix:nonFraction name="us-gaap:NumberOfStores" id="Fact_a87e7c2db2bf4a9cac05bdc3a8427139" contextRef="c20240331_StatementGeographicalAxis_ES" unitRef="U004" decimals="INF" scale="0" format="ixt-sec:numwordsen">one</ix:nonFraction> store in Spain.</div>
</ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f9" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f10">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f10" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f11">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">The Company&#8217;s common shares currently trade on the Nasdaq Capital Market under the symbol &#8220;TLF.&#8221;</div>
</ix:continuation>
        <div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">
          <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f11" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f12">
<div><br/>
          </div>
</ix:continuation>
          <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f12" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f13">
<div style="text-align: justify; font-family: 'Times New Roman'; background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">We operate as a <span style="-sec-ix-hidden:Fact_53019d5e2b204ab49d2b6ecf90dbadfa"><span style="-sec-ix-hidden:Fact_07119480a0aa41a9af1c991f8ee8cf42">single</span></span> segment and report on a consolidated basis.</div>
</ix:continuation>
        </div>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f13" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f14">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f14" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f15">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">T<span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">he accompanying unaudited Condensed Consolidated Financial Statements have been prepared in accordance with accounting principles generally accepted in the United States of America (&#8220;GAAP&#8221;) for interim financial information and with the
            instructions to Form 10-Q and Article 8 of Regulation S-X. Accordingly, they do not include all of the information and footnotes required by GAAP for annual audited financial statements. In the opinion of management, the accompanying unaudited
            Condensed Consolidated Financial Statements for Tandy Leather Factory, Inc. and its consolidated subsidiaries contain all adjustments (consisting of normal recurring adjustments) necessary to present fairly our financial position as of March
            31, 2024 and December 31, 2023, our results of operations and our cash flows for the three months ended March 31, 2024 and 2023, and our statements of stockholders&#8217; equity as of and for the three months ended March 31, 2024 and 2023. The
            preparation of financial statements in accordance with GAAP requires the use of estimates that affect the reported value of assets, liabilities, revenues and expenses. These estimates are based on historical experience and various other factors
            that are believed to be reasonable under the circumstances, the results of which form the basis for the Company&#8217;s conclusions. The Company continually evaluates the information used to make these estimates as the business and the economic
            environment changes. Actual results may differ from these estimates, and estimates are subject to change due to modifications in the underlying conditions or assumptions. These unaudited Condensed Consolidated Financial Statements should be
            read in conjunction with the audited Consolidated Financial Statements and accompanying notes included in our Form 10-K for the year ended December 31, 2023</span>.</div>
</ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f15" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f16">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
        </div>
</ix:continuation>
        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div class="BRPFPageFooter" style="width: 100%;"></div>

          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">6</span></div>

          <div class="BRPFPageBreak" style="page-break-after:always;">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 8pt; font-style: italic; font-variant: normal; text-transform: none;"><a href="#TABLEOFCONTENTS">Table of Contents</a></div>

          </div>

        </div>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f16" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f17">
<div style="text-align: justify; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">Significant Accounting Policies</div>
</ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f17" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f18">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f18" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f19"><ix:nonNumeric name="us-gaap:CashAndCashEquivalentsPolicyTextBlock" id="Text_8f9875ae87af46f3ad28375a68e33c70" contextRef="c20240101to20240331" escape="true">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Cash and cash equivalents</span></span>. The Company considers investments with a maturity when purchased of three months or less
          to be cash equivalents. All credit card, debit card and electronic transfer transactions that process in less than seven days are classified as cash and cash equivalents.</div>
</ix:nonNumeric></ix:continuation>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f19" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f20">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f20" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f21"><ix:nonNumeric name="us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" id="Text_4491e6514c9647dd8ad490c67638839d" contextRef="c20240101to20240331" escape="true">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Foreign currency translation and transactions</span></span>. Foreign currency translation adjustments arise from activities of our
          foreign subsidiaries.&#160; Results of operations are translated into U.S. dollars using the average exchange rates during the period, while assets and liabilities are translated using period-end exchange rates.&#160; Foreign currency translation
          adjustments of assets and liabilities are recorded in stockholders&#8217; equity and presented net of tax. Gains and losses resulting from foreign currency translations are <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">reported in the Condensed Consolidated Statements of Operations and Comprehensive Income (Loss) under the caption &#8220;Foreign currency
            translation adjustments, net of tax&#8221; for all periods presented</span>.</div>
</ix:nonNumeric></ix:continuation>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f21" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f22">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f22" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f23"><ix:nonNumeric name="us-gaap:RevenueFromContractWithCustomerPolicyTextBlock" id="Text_adb845aca409415189a1f13f99267736" contextRef="c20240101to20240331" escape="true" continuedAt="Text_86366c572d3849a3934ffeacd02340a61">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Revenue Recognition.</span></span>&#160; Our revenue is earned from sales of merchandise and generally occurs via three methods: (1) at
          the store counter, (2) via web sales, and (3) sales of product directly to commercial customers. We recognize revenue when we satisfy the performance obligation of transferring control of product merchandise over to a customer. At the store
          counter, our performance obligation is met, and revenue is recognized when a sales transaction occurs with a customer. When merchandise is shipped to a customer, our performance obligation is met, and revenue is recognized when control passes to
          the customer. Shipping terms are normally free on board (&#8220;FOB&#8221;) shipping point and control passes when the merchandise is shipped to the customer. Sales tax and comparable foreign tax are excluded from net sales, while shipping charged to our
          customers is included in net sales. Net sales are based on the amount of consideration that we expect to receive, reduced by estimates for future merchandise returns.</div>
</ix:nonNumeric></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f23" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f24"><ix:continuation id="Text_86366c572d3849a3934ffeacd02340a61" continuedAt="Text_86366c572d3849a3934ffeacd02340a62">
<div><br/></div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f24" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f25"><ix:continuation id="Text_86366c572d3849a3934ffeacd02340a62" continuedAt="Text_86366c572d3849a3934ffeacd02340a63">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">The <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">sales return allowance is based each year on historical customer return behavior and other known factors and reduces net sales and cost of sales, accordingly. The sales return allowance included in accrued expense and other
            liabilities was $<ix:nonFraction name="us-gaap:ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss" id="Fact_4602f1b899bb4dcfbd61c75876d57e10" contextRef="c20240331" unitRef="U002" decimals="-5" scale="6" format="ixt:num-dot-decimal">0.1</ix:nonFraction> million, $<ix:nonFraction name="us-gaap:ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss" id="Fact_4c504a3a603c4c008d0fdc3cfae5d832" contextRef="c20231231" unitRef="U002" decimals="-5" scale="6" format="ixt:num-dot-decimal">0.1</ix:nonFraction>
            million, and $<ix:nonFraction name="us-gaap:ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss" id="Fact_9e60dae770034dac9d3cb1943d77b1e0" contextRef="c20221231" unitRef="U002" decimals="-5" scale="6" format="ixt:num-dot-decimal">0.2</ix:nonFraction> million as of March 31, 2024, December 31, 2023, and January 1, 2023. The estimated value of merchandise expected
            to be returned included in other current assets was $<ix:nonFraction name="tlfa:InventoryMerchandiseExpectedToBeReturned" id="Fact_ebb5fdf040d347128fbad24a13dbe38a" contextRef="c20221231" unitRef="U002" decimals="-5" scale="6" format="ixt:num-dot-decimal"><ix:nonFraction name="tlfa:InventoryMerchandiseExpectedToBeReturned" id="Fact_57e295b3b24a47aab2819173cfd48159" contextRef="c20231231" unitRef="U002" decimals="-5" scale="6" format="ixt:num-dot-decimal"><ix:nonFraction name="tlfa:InventoryMerchandiseExpectedToBeReturned" id="Fact_0880d3d57a114cc4b60a68e2ffe3c63d" contextRef="c20240331" unitRef="U002" decimals="-5" scale="6" format="ixt:num-dot-decimal">0.1</ix:nonFraction></ix:nonFraction></ix:nonFraction> million as of March 31, 2024, December 31, 2023, and January 1, 2023</span>.</div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f25" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f26"><ix:continuation id="Text_86366c572d3849a3934ffeacd02340a63" continuedAt="Text_86366c572d3849a3934ffeacd02340a64">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f26" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f27"><ix:continuation id="Text_86366c572d3849a3934ffeacd02340a64" continuedAt="Text_86366c572d3849a3934ffeacd02340a65">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">We <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">record a gift card liability for the unfulfilled performance obligation on the date we issue a gift card to a customer. We record revenue and reduce the gift card liability as the customer redeems the gift card. In addition, for gift
            card breakage, we recognize a proportionate amount for the expected unredeemed gift cards over the expected customer redemption period, which is <ix:nonNumeric name="tlfa:GiftCardRedemptionPeriod" id="Fact_06217b9796ac4ff3b2181a17dcb60e0a" contextRef="c20240101to20240331" format="ixt-sec:durwordsen">one year</ix:nonNumeric>. As of March 31, 2024, December 31, 2023 and January1, 2023, our gift card liability, included in accrued expenses and other liabilities, was $<ix:nonFraction name="us-gaap:ContractWithCustomerLiability" id="Fact_b26176e166994aaba275a647fbcf87b7" contextRef="c20240331_BalanceSheetLocationAxis_AccountsPayableAndAccruedLiabilitiesMember" unitRef="U002" decimals="-5" scale="6" format="ixt:num-dot-decimal">0.2</ix:nonFraction> million, $<ix:nonFraction name="us-gaap:ContractWithCustomerLiability" id="Fact_bd76e3970a8249bdaf90d4ffaaf29c30" contextRef="c20231231_BalanceSheetLocationAxis_AccountsPayableAndAccruedLiabilitiesMember" unitRef="U002" decimals="-5" scale="6" format="ixt:num-dot-decimal">0.3</ix:nonFraction> million and $<ix:nonFraction name="us-gaap:ContractWithCustomerLiability" id="Fact_deee919bdefb4185b8a01394384ccbb3" contextRef="c20221231_BalanceSheetLocationAxis_AccountsPayableAndAccruedLiabilitiesMember" unitRef="U002" decimals="-5" scale="6" format="ixt:num-dot-decimal">0.3</ix:nonFraction> million, respectively. We recognized gift card revenue of $<ix:nonFraction name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" id="Fact_f364f7d9ff0e4e5bae13a6a85fc333d4" contextRef="c20230101to20230331" unitRef="U002" decimals="-5" scale="6" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" id="Fact_dcfb469364d34985a0b4b2db5185413f" contextRef="c20240101to20240331" unitRef="U002" decimals="-5" scale="6" format="ixt:num-dot-decimal">0.2</ix:nonFraction></ix:nonFraction> million for the three months ended March 31, 2024 and 2023</span>.</div>
</ix:continuation></ix:continuation>
        <div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">
          <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f27" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f28"><ix:continuation id="Text_86366c572d3849a3934ffeacd02340a65" continuedAt="Text_86366c572d3849a3934ffeacd02340a66">
<div><br/>
          </div>
</ix:continuation></ix:continuation>
          <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f28" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f29"><ix:continuation id="Text_86366c572d3849a3934ffeacd02340a66" continuedAt="Text_86366c572d3849a3934ffeacd02340a67">
<div style="text-align: justify; font-family: 'Times New Roman'; background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">For the three
            months ended March 31, 2024 and 2023, we recognized $<ix:nonFraction name="us-gaap:DeferredRevenueRevenueRecognized1" id="Fact_5d2a193581084ee590bace2b11690230" contextRef="c20240101to20240331" unitRef="U002" decimals="-5" scale="6" format="ixt:num-dot-decimal">0.1</ix:nonFraction> million and $<ix:nonFraction name="us-gaap:DeferredRevenueRevenueRecognized1" id="Fact_3293a9d2cc0f49d39d9cfb98f221bdae" contextRef="c20230101to20230331" unitRef="U002" decimals="-5" scale="6" format="ixt:num-dot-decimal">0.2</ix:nonFraction> million respectively in net sales associated with gift cards.</div>
</ix:continuation></ix:continuation>
        </div>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f29" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f30"><ix:continuation id="Text_86366c572d3849a3934ffeacd02340a67" continuedAt="Text_86366c572d3849a3934ffeacd02340a68">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation></ix:continuation>
        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div class="BRPFPageFooter" style="width: 100%;"></div>

          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">7</span></div>

          <div class="BRPFPageBreak" style="page-break-after: always;">
            <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 8pt; font-style: italic; font-variant: normal; text-transform: none;"><a href="#TABLEOFCONTENTS">Table of Contents</a></div>

          </div>

        </div>

        <!--PROfilePageNumberReset%Num%8%%%-->
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f30" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f31"><ix:continuation id="Text_86366c572d3849a3934ffeacd02340a68" continuedAt="Text_86366c572d3849a3934ffeacd02340a69">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Disaggregated Revenue.</span>&#160; </span><ix:nonNumeric name="us-gaap:DisaggregationOfRevenueTableTextBlock" id="Text_a271cacf781f460eb120ced1bce00dad" contextRef="c20240101to20240331" escape="true" continuedAt="Text_8a749d155dd145c182c5002db7f992bc1"><span style="font-family: 'Times New Roman'; font-size: 10pt; color: #000000;">In the following table, revenue for the three months ended March 31,
          2024 and 2023 is disaggregated by geographic areas as follows:</span></ix:nonNumeric></div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_8a749d155dd145c182c5002db7f992bc1" continuedAt="Text_8a749d155dd145c182c5002db7f992bc2"><ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f31" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f32"><ix:continuation id="Text_86366c572d3849a3934ffeacd02340a69" continuedAt="Text_86366c572d3849a3934ffeacd02340a610">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
        </div>
</ix:continuation></ix:continuation></ix:continuation>
        <ix:continuation id="Text_8a749d155dd145c182c5002db7f992bc2"><ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f32" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f33"><ix:continuation id="Text_86366c572d3849a3934ffeacd02340a610" continuedAt="Text_86366c572d3849a3934ffeacd02340a611">
<table cellspacing="0" cellpadding="0" border="0" style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; width: 100%;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;"> </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" colspan="6">
                <div style="text-align: center; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Three Months Ended March 31,</div>
              </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">
                <div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman',Times,serif; font-size: 10pt; font-style: italic;">(in thousands)</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" colspan="2">
                <div style="text-align: center; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">2024</div>
              </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" colspan="2">
                <div style="text-align: center; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">2023</div>
              </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF; white-space: nowrap;">
                <div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">United States</div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_f2ab9224d9834239b0b9bcc528dbb753" contextRef="c20240101to20240331_StatementGeographicalAxis_US" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">17,085</ix:nonFraction></div>
              </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_1752b2d7f5c5463f8ae6d1f4688b35c0" contextRef="c20230101to20230331_StatementGeographicalAxis_US" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">18,099</ix:nonFraction></div>
              </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; white-space: nowrap;">
                <div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Canada</div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" colspan="1">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_72a095a7b54e4aff9a6daae3f986a548" contextRef="c20240101to20240331_StatementGeographicalAxis_CA" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,897</ix:nonFraction></div>
              </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" colspan="1">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_45a06143221a40568a3dc33c55a4e95a" contextRef="c20230101to20230331_StatementGeographicalAxis_CA" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,907</ix:nonFraction></div>
              </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" rowspan="1">Other </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_c859fe9a996c4aaeb957e3479e7aaa2d" contextRef="c20240101to20240331_StatementGeographicalAxis_OtherCountriesMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">293</ix:nonFraction></td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_1700a509e8bf4cbb952921e3fed0e9d7" contextRef="c20230101to20230331_StatementGeographicalAxis_OtherCountriesMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">354</ix:nonFraction></td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; white-space: nowrap;">
                <div style="text-align: left; text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman',Times,serif; font-size: 10pt; font-weight: bold;">Net sales</div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" colspan="1">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">$</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" colspan="1">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_a4d8f2407c1246dcb1f947b559b0d39c" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">19,275</ix:nonFraction></div>
              </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" colspan="1">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">$</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" colspan="1">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_d1c6974126c54d2e84b42cafd21ebf4d" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">20,360</ix:nonFraction></div>
              </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>


</table>
</ix:continuation></ix:continuation></ix:continuation>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f33" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f34"><ix:continuation id="Text_86366c572d3849a3934ffeacd02340a611" continuedAt="Text_86366c572d3849a3934ffeacd02340a612">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation></ix:continuation>
        <div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">
          <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f34" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f35"><ix:continuation id="Text_86366c572d3849a3934ffeacd02340a612">
<div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: justify;">Geographic sales information is based on the location of the customer. As a percentage of our consolidated net sales, excluding
            Canada, our other international net sales were less than <ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_dae155d8879c4d238501034cc417ee24" contextRef="c20230101to20230331_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_RangeAxis_MaximumMember_StatementGeographicalAxis_AllOtherCountriesMember" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_d7d8ab9124c84005a9f16162756cd4c9" contextRef="c20240101to20240331_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_RangeAxis_MaximumMember_StatementGeographicalAxis_AllOtherCountriesMember" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_992c5d57be3646c6926a2fae8639b9a1" contextRef="c20240101to20240331_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_RangeAxis_MaximumMember_StatementGeographicalAxis_AllOtherCountriesMember" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_01020bdaa6be4cedb59991c4303cf112" contextRef="c20230101to20230331_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_RangeAxis_MaximumMember_StatementGeographicalAxis_AllOtherCountriesMember" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">2.0</ix:nonFraction></ix:nonFraction></ix:nonFraction></ix:nonFraction>% for the three months ended March 31, 2024, and 2023 respectively.</div>
</ix:continuation></ix:continuation>

        </div>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f35" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f36">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;"> <br/>
            </span></span></div>
</ix:continuation>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f36" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f37"><ix:nonNumeric name="tlfa:RevenueRecognitionDiscountsPolicyTextBlock" id="Text_86c403f8cb9345b99e4c0ce960314f7e" contextRef="c20240101to20240331" escape="true">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="text-decoration: underline;"><span style="font-style: italic; font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-variant: normal; text-transform: none;">Discounts</span></span><span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-variant: normal; text-transform: none;"><span style="text-decoration: underline;">.</span> <span style="font-style: normal;">We offer <ix:nonFraction name="tlfa:NumberOfClassesOfCustomerDiscounts" id="Fact_608196ada3a647c3989498039f33d5a1" contextRef="c20240101to20240331" unitRef="U007" decimals="INF" scale="0" format="ixt-sec:numwordsen">six</ix:nonFraction>&#160; classes of customer discounts:&#160; 1) Retail, 2) Military/First Responder, 3) Business, 4) Commercial, 5) Commercial Pro, and 6) Employees.
              There are no other classes of discounts and any discounts given will fall into one of these <ix:nonFraction name="tlfa:NumberOfClassesOfCustomerDiscounts" id="Fact_4397e04b28df4d1ab9137745adbfa9a1" contextRef="c20240101to20240331" unitRef="U007" decimals="INF" scale="0" format="ixt-sec:numwordsen">six</ix:nonFraction> categories. Such discounts are not
              deemed to be variable consideration nor convey a material right to these customers since the discounted pricing they receive in a discount class is not incremental to others within the same class and there is no retrospective impact of such
              discounts. As a result, sales are reported after deduction of discounts at the point of sale. We do not pay slotting fees or make other payments to resellers.</span></span></div>
</ix:nonNumeric></ix:continuation>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f37" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f38">
<div><br/>
        </div>
</ix:continuation>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f38" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f39"><ix:nonNumeric name="us-gaap:SellingGeneralAndAdministrativeExpensesPolicyTextBlock" id="Text_49fa23af0ba24397bcf2f832ad5e1fac" contextRef="c20240101to20240331" escape="true">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Operating</span></span><span style="text-decoration: underline;">&#160;</span><span style="font-style: italic;"><span style="text-decoration: underline;">expense</span></span><span style="text-decoration: underline;">s</span>. Operating expenses include all
          selling, general and administrative costs, including wages and benefits, rent and occupancy costs, depreciation, advertising, store operating expenses, outbound freight charges (to ship merchandise to customers), and corporate office costs.</div>
</ix:nonNumeric></ix:continuation>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f39" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f40">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f40" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f41"><ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentPolicyTextBlock" id="Text_254677ffca6d42ab96ab85c61048f1f3" contextRef="c20240101to20240331" escape="true">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Property and equipment, net of accumulated depreciation</span></span>. Property and equipment are stated at cost. Depreciation is
          computed using the straight-line method over the estimated useful lives of the assets, which are <span style="-sec-ix-hidden:Fact_138de38eb2164d4da489f5d1fc8ccb33">three</span> to <ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Fact_1e2990c56d9b422e8b836e1f6f0fb433" contextRef="c20240331_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember_RangeAxis_MaximumMember" format="ixt-sec:durwordsen">ten years</ix:nonNumeric> for equipment and machinery, <span style="-sec-ix-hidden:Fact_081f9d3879424da5a84f1d889d24a907">seven</span>
          to <ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Fact_4bcace2d12664298a1f3e3dcf123f04a" contextRef="c20240331_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndFixturesMember_RangeAxis_MaximumMember" format="ixt-sec:durwordsen">fifteen years</ix:nonNumeric> for furniture and fixtures, <ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Fact_81c7895e9e524521987ed4c7f2fcd249" contextRef="c20240331_PropertyPlantAndEquipmentByTypeAxis_VehiclesMember" format="ixt-sec:durwordsen">five years</ix:nonNumeric> for vehicles, and <ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Fact_04bbc8be3d7e42aa9be20b2ccad6b052" contextRef="c20240331_PropertyPlantAndEquipmentByTypeAxis_BuildingAndBuildingImprovementsMember" format="ixt-sec:durwordsen">forty years</ix:nonNumeric> for buildings and related improvements. Leasehold
          improvements are amortized over the lesser of the life of the lease or the useful life of the asset. Repairs and maintenance costs are expensed as incurred but are capitalized if extend the life of the assets.</div>
</ix:nonNumeric></ix:continuation>
        <div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">
          <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f41" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f42">
<div><br/>
          </div>
</ix:continuation>
        </div>


        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f42" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f43"><ix:nonNumeric name="us-gaap:InventoryPolicyTextBlock" id="Text_a368177790cb433bad720854c423e636" contextRef="c20240101to20240331" escape="true" continuedAt="Text_5e714883fa5c43ff9318bd603fe130cd1">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Inventory</span></span>. Inventory is stated at the lower of first-in, first-out (&#8220;FIFO&#8221;) cost or net realizable value, and FIFO
          layers are maintained at the location level. Finished goods held for sale include the cost of merchandise purchases, the costs to bring the merchandise to our Texas distribution center, warehousing and handling expenditures, and distributing and
          delivering merchandise to our stores. These costs include depreciation of long-lived assets utilized in acquiring, warehousing and distributing inventory. Manufacturing inventory including raw materials and work-in-process is valued on a first
          in, first out basis using full absorption accounting which includes material, labor, and other applicable manufacturing overhead. Carrying values of inventory are analyzed and, to the extent that the cost of inventory exceeds the net realizable
          value, provisions are made to reduce the carrying amount of the inventory.</div>
</ix:nonNumeric></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f43" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f44"><ix:continuation id="Text_5e714883fa5c43ff9318bd603fe130cd1" continuedAt="Text_5e714883fa5c43ff9318bd603fe130cd2">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f44" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f45"><ix:continuation id="Text_5e714883fa5c43ff9318bd603fe130cd2" continuedAt="Text_5e714883fa5c43ff9318bd603fe130cd3">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">We regularly review all inventory items to determine if there are (i) damaged goods (e.g., for leather, excessive scars or damage from ultra-violet (&#8220;UV&#8221;) light),
          (ii) items that need to be removed from our product line (e.g., slow-moving items, inability of a supplier to provide items of acceptable quality or quantity, and to maintain freshness in the product line) and (iii) pricing actions that need to
          be taken to adequately value our inventory at the lower of cost or net realizable value.</div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f45" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f46"><ix:continuation id="Text_5e714883fa5c43ff9318bd603fe130cd3" continuedAt="Text_5e714883fa5c43ff9318bd603fe130cd4">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation></ix:continuation>
        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div class="BRPFPageFooter" style="width: 100%;"></div>

          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">8</span></div>

          <div class="BRPFPageBreak" style="page-break-after: always;">
            <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 8pt; font-style: italic; font-variant: normal; text-transform: none;"><a href="#TABLEOFCONTENTS">Table of Contents</a></div>

          </div>

        </div>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f46" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f47"><ix:continuation id="Text_5e714883fa5c43ff9318bd603fe130cd4" continuedAt="Text_5e714883fa5c43ff9318bd603fe130cd5">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">Since the determination of net realizable value of inventory involves both estimation and judgement with regard to market values and reasonable costs to sell,
          differences in these estimates could result in ultimate valuations that differ from the recorded asset.</div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f47" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f48"><ix:continuation id="Text_5e714883fa5c43ff9318bd603fe130cd5" continuedAt="Text_5e714883fa5c43ff9318bd603fe130cd6">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f48" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f49"><ix:continuation id="Text_5e714883fa5c43ff9318bd603fe130cd6" continuedAt="Text_5e714883fa5c43ff9318bd603fe130cd7">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">The majority of inventory purchases and commitments are made in U.S. dollars in order to limit the Company&#8217;s exposure to foreign currency fluctuations. Goods shipped
          to us are recorded as inventory owned by us when the risk of loss shifts to us from the supplier.<span style="color: rgb(0, 0, 0);"><br/>
          </span></div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f49" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f50"><ix:continuation id="Text_5e714883fa5c43ff9318bd603fe130cd7" continuedAt="Text_5e714883fa5c43ff9318bd603fe130cd8">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation></ix:continuation>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f50" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f51"><ix:continuation id="Text_5e714883fa5c43ff9318bd603fe130cd8" continuedAt="Text_5e714883fa5c43ff9318bd603fe130cd9"><ix:nonNumeric name="us-gaap:ScheduleOfInventoryCurrentTableTextBlock" id="Text_990ec3ab0bdb4cb283f52a861f1f341f" contextRef="c20240101to20240331" escape="true" continuedAt="Text_1ecd51e9f07c498889c1ad49a2da93661">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Inventory is physically counted partially during each quarter and fully counted at year-end in the Texas distribution center. At the store
          level, inventory is partially&#160; counted each quarter for high value items and fully counted at year-end. Inventory is then adjusted in our accounting system to reflect actual count results. </div>
</ix:nonNumeric></ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f51" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f52"><ix:continuation id="Text_5e714883fa5c43ff9318bd603fe130cd9" continuedAt="Text_5e714883fa5c43ff9318bd603fe130cd10"><ix:continuation id="Text_1ecd51e9f07c498889c1ad49a2da93661" continuedAt="Text_1ecd51e9f07c498889c1ad49a2da93662">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation></ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f52" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f53"><ix:continuation id="Text_5e714883fa5c43ff9318bd603fe130cd10"><ix:continuation id="Text_1ecd51e9f07c498889c1ad49a2da93662">
<table cellspacing="0" cellpadding="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%;">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">
                <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-style: italic;">(in thousands)</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">
                <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">March 31, 2024</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">
                <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">December 31, 2023</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom;">
                <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">On hand:</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);">
                <div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);">Finished goods held for sale</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);">
                <div style="color: rgb(0, 0, 0);">$</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);">
                <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:InventoryFinishedGoods" id="Fact_741547ceab0b4a99a08c6c8b46faa349" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">33,625</ix:nonFraction></div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);">
                <div style="color: rgb(0, 0, 0);">$</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);">
                <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:InventoryFinishedGoods" id="Fact_1b28498dafec4b0e87fe1f5748d3be49" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">33,350</ix:nonFraction></div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
                <div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);">Raw materials and work in process</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
                <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:InventoryWorkInProcessAndRawMaterials" id="Fact_eb4b8ef98c5742d992a322b853031515" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,248</ix:nonFraction></div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
                <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:InventoryWorkInProcessAndRawMaterials" id="Fact_9382d9cae34948dd80d5c09d8a78513e" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,774</ix:nonFraction></div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255); padding-bottom: 2px;">
                <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Inventory in transit</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);">
                <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OtherInventoryInTransit" id="Fact_616913d0ddbe4511ad794c752ff134b6" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,802</ix:nonFraction></div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);">
                <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:OtherInventoryInTransit" id="Fact_ebfed86651164087944a734aedcf50fa" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,869</ix:nonFraction></div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;">
                <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;">TOTAL</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);">
                <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);">
                <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:InventoryNet" id="Fact_2b9046f2e1184c7dbff7e57585e5e8ab" contextRef="c20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">36,675</ix:nonFraction></div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);">
                <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);">
                <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:InventoryNet" id="Fact_c47de6b3a0704726b261ff5d24e47beb" contextRef="c20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">37,993</ix:nonFraction></div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>

  </tr>


</table>
</ix:continuation></ix:continuation></ix:continuation>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f53" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f54">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f54" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f55"><ix:nonNumeric name="us-gaap:LesseeLeasesPolicyTextBlock" id="Text_901331bdc6cf42a4980504556d7bfd14" contextRef="c20240101to20240331" escape="true" continuedAt="Text_08097b77318c48a39156c5ef948902dc1">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="text-decoration: underline;"><span style="font-style: italic;">Leases</span></span><span style="font-style: italic;">.</span> We lease certain real estate for our retail store locations and may
          lease warehouse equipment for our Texas distribution center under long-term lease agreements; however, as of the end of December 31, 2023, we acquired the warehouse equipment and is now a part of our fixed assets. We determine if an arrangement
          is a lease at inception and recognize right-of-use (&#8220;ROU&#8221;) assets and lease liabilities at commencement date based on the present value of the lease payments over the lease term.<span style="color: rgb(0, 0, 0);"> We elected not to record leases
            with an initial term of 12 months or less on the balance sheet for all our asset classes.</span></div>
</ix:nonNumeric></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f55" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f56"><ix:continuation id="Text_08097b77318c48a39156c5ef948902dc1" continuedAt="Text_08097b77318c48a39156c5ef948902dc2">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f56" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f57"><ix:continuation id="Text_08097b77318c48a39156c5ef948902dc2" continuedAt="Text_08097b77318c48a39156c5ef948902dc3">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">For operating leases, the present value of our lease liabilities may include: (1) rental payments adjusted for inflation or market rates, and (2) lease terms with
          options to renew the lease or options to purchase leased equipment, when it is reasonably certain we will exercise such an option. The exercise of lease renewal or purchase option is generally at our discretion.&#160; Payments based on a change in an
          index or market rate are not considered in the determination of lease payments for purposes of measuring the related lease liability. We discount lease payments using our incremental borrowing rate based on information available as of the
          measurement date.</div>
</ix:continuation></ix:continuation>
      </div>

      <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f57" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f58"><ix:continuation id="Text_08097b77318c48a39156c5ef948902dc3" continuedAt="Text_08097b77318c48a39156c5ef948902dc4">
<div><br/></div>
</ix:continuation></ix:continuation>
      <div>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f58" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f59"><ix:continuation id="Text_08097b77318c48a39156c5ef948902dc4" continuedAt="Text_08097b77318c48a39156c5ef948902dc5">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">We recognize rent expense related to our <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">operating leases assets on a straight-line basis over the lease term. Rent expense is recorded in operating expenses.<br/>
          </span></div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f59" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f60"><ix:continuation id="Text_08097b77318c48a39156c5ef948902dc5" continuedAt="Text_08097b77318c48a39156c5ef948902dc6">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f60" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f61"><ix:continuation id="Text_08097b77318c48a39156c5ef948902dc6" continuedAt="Text_08097b77318c48a39156c5ef948902dc7">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">For finance leases, our right-of-use assets are amortized on a straight-line basis over the earlier of the useful life of the right-of-use asset or the end of the
          lease term with rent expense recorded to operating expenses.&#160; We adjust the lease liability to reflect lease payments made during the period and interest incurred on the lease liability using the effective interest method. <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">The interest expense incurred is recorded in interest expense on the Condensed Consolidated
            Statements of Operations and Comprehensive Income</span>.</div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f61" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f62"><ix:continuation id="Text_08097b77318c48a39156c5ef948902dc7" continuedAt="Text_08097b77318c48a39156c5ef948902dc8">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f62" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f63"><ix:continuation id="Text_08097b77318c48a39156c5ef948902dc8" continuedAt="Text_08097b77318c48a39156c5ef948902dc9">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">The depreciable life of related leasehold improvements is based on the shorter of the useful life or the lease term. We also perform interim reviews of our lease
          assets for impairment when evidence exists that the carrying value of an asset group, including a lease asset, may not be recoverable.</div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f63" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f64"><ix:continuation id="Text_08097b77318c48a39156c5ef948902dc9" continuedAt="Text_08097b77318c48a39156c5ef948902dc10">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
        </div>
</ix:continuation></ix:continuation>
        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div class="BRPFPageFooter" style="width: 100%;"></div>

          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">9</span></div>

          <div class="BRPFPageBreak" style="page-break-after: always;">
            <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 8pt; font-style: italic; font-variant: normal; text-transform: none;"><a href="#TABLEOFCONTENTS">Table of Contents</a></div>

          </div>

        </div>

      </div>

      <div>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f64" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f65"><ix:continuation id="Text_08097b77318c48a39156c5ef948902dc10">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">None of our lease agreements contain contingent rental payments, material residual value guarantees or material restrictive covenants.&#160; We have no sublease
          agreements and no lease agreements in which we are named as a lessor.</div>
</ix:continuation></ix:continuation>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f65" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f66">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f66" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f67"><ix:nonNumeric name="us-gaap:ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" id="Text_ebeff7a2f6b945f89eacb4a31d24eec1" contextRef="c20240101to20240331" escape="true">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Impairment of Long-Lived Assets</span></span>. We evaluate long-lived assets on a quarterly basis to identify events or changes in
          circumstances (&#8220;triggering events&#8221;) that indicate the carrying value of certain assets may not be recoverable. Upon the occurrence of a triggering event, ROU lease assets, property and equipment and definite-lived intangible assets are reviewed
          for impairment and an impairment loss is recorded in the period in which it is determined that the carrying amount of the assets is not recoverable. The determination of recoverability is made based upon the estimated undiscounted future net cash
          flows of assets grouped at the lowest level for which there are identifiable cash flows independent of the cash flows of other groups of assets with such cash flows to be realized over the estimated remaining useful life of the primary asset
          within the asset group. The Company determined the lowest level of identifiable cash flows that are independent of other asset groups to be primarily at the individual store level. If the estimated undiscounted future net cash flows for a given
          store are less than the carrying amount of the related store assets, an impairment loss is determined by comparing the estimated fair value with the carrying value of the related assets. The impairment loss is then allocated across the asset
          group&#8217;s major classifications which in this case are operating lease assets and property and equipment. Triggering events at the store level could include material declines in operational and financial performance or planned changes in the use of
          assets, such as store relocation or store closure. This evaluation requires management to make judgements relating to future cash flows, growth rates and economic and market conditions. The fair value of an asset group is estimated using a
          discounted cash flow valuation method.</div>
</ix:nonNumeric></ix:continuation>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f67" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f68">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f68" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f69"><ix:nonNumeric name="us-gaap:FairValueOfFinancialInstrumentsPolicy" id="Text_923b48d0868141ba99975bf649556eaa" contextRef="c20240101to20240331" escape="true" continuedAt="Text_8a33db5d75094acbbccb2708a50944681">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Fair Value of Financial Instruments</span></span>. We measure fair value as an exit price, which is the amount that would be
          received to sell an asset or paid to transfer a liability in an orderly transaction between market participants. As a basis for considering such assumptions, accounting standards establish a three-tier fair value hierarchy, which prioritizes the
          inputs used in the valuation methodologies in measuring fair value:</div>
</ix:nonNumeric></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f69" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f70"><ix:continuation id="Text_8a33db5d75094acbbccb2708a50944681" continuedAt="Text_8a33db5d75094acbbccb2708a50944682">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f70" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f71"><ix:continuation id="Text_8a33db5d75094acbbccb2708a50944682" continuedAt="Text_8a33db5d75094acbbccb2708a50944683">
<div>
          <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable">


  <tr>

    <td style="width: 36pt; vertical-align: top;">
                  <div style="margin-left: 18pt;"><span style="font-family: Times New Roman">&#9679;</span></div>
                </td>

    <td style="width: auto; vertical-align: top;">
                  <div style="text-align: justify;">Level 1 &#8211; observable inputs that reflect quoted prices in active markets for identical assets or liabilities.</div>
                </td>

  </tr>


</table>
        </div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f71" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f72"><ix:continuation id="Text_8a33db5d75094acbbccb2708a50944683" continuedAt="Text_8a33db5d75094acbbccb2708a50944684">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f72" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f73"><ix:continuation id="Text_8a33db5d75094acbbccb2708a50944684" continuedAt="Text_8a33db5d75094acbbccb2708a50944685">
<div>
          <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable">


  <tr>

    <td style="width: 36pt; vertical-align: top;">
                  <div style="margin-left: 18pt;"><span style="font-family: Times New Roman">&#9679;</span></div>
                </td>

    <td style="width: auto; vertical-align: top;">
                  <div style="text-align: justify;">Level 2 &#8211; significant observable inputs other than quoted prices in active markets for similar assets and liabilities, such as quoted prices for identical or similar assets or liabilities in markets that
                    are not active; or other inputs that are observable or can be corroborated by observable market data.</div>
                </td>

  </tr>


</table>
        </div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f73" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f74"><ix:continuation id="Text_8a33db5d75094acbbccb2708a50944685" continuedAt="Text_8a33db5d75094acbbccb2708a50944686">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f74" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f75"><ix:continuation id="Text_8a33db5d75094acbbccb2708a50944686" continuedAt="Text_8a33db5d75094acbbccb2708a50944687">
<div>
          <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable">


  <tr>

    <td style="width: 36pt; vertical-align: top;">
                  <div style="margin-left: 18pt;"><span style="font-family: Times New Roman">&#9679;</span></div>
                </td>

    <td style="width: auto; vertical-align: top;">
                  <div style="text-align: justify;">Level 3 &#8211; significant unobservable inputs reflecting our own assumptions, consistent with reasonably available assumptions made by other market participants.</div>
                </td>

  </tr>


</table>
          <div style="font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
          </div>

        </div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f75" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f76"><ix:continuation id="Text_8a33db5d75094acbbccb2708a50944687" continuedAt="Text_8a33db5d75094acbbccb2708a50944688">
<div><span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">Classification of the financial asset or liability within the hierarchy is
          determined based on the lowest level input that is significant to the fair value measurement. </span></div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f76" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f77"><ix:continuation id="Text_8a33db5d75094acbbccb2708a50944688" continuedAt="Text_8a33db5d75094acbbccb2708a50944689">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f77" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f78"><ix:continuation id="Text_8a33db5d75094acbbccb2708a50944689">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">Our principal financial instruments held consist of T-Bills as of March 31, 2024 and December 31, 2023 which fall under level 1 of the fair value hierarchy; accounts
          receivable - trade, accounts payable - <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">trade, as of March 31, 2024 and
            December 31, 2023,&#160; all of which fall under Level 3 of the fair value hierarchy</span>.&#160; As of March 31, 2024 and December 31, 2023, the carrying values of our financial instruments, included in our Consolidated Balance Sheets, approximated
          their fair values. There were <ix:nonFraction name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet" id="Fact_dd31022d1f0640f0a20cc5d611ea709d" contextRef="c20230101to20230331" unitRef="U002" decimals="0" scale="0" format="ixt-sec:numwordsen"><ix:nonFraction name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet" id="Fact_26887e6b781848c1b875c945c7a8e0db" contextRef="c20240101to20240331" unitRef="U002" decimals="0" scale="0" format="ixt-sec:numwordsen">no</ix:nonFraction></ix:nonFraction> transfers into or out of Levels 1, 2 and 3 during the three months ended March 31, 2024 and 2023.</div>
</ix:continuation></ix:continuation>

        <div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">
          <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f78" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f79">
<div><br/>
          </div>
</ix:continuation>

        </div>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f79" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f80"><ix:nonNumeric name="us-gaap:IncomeTaxPolicyTextBlock" id="Text_f7d697c35bd24078803a3f7d6ab1f36c" contextRef="c20240101to20240331" escape="true" continuedAt="Text_88dc7114dccc4048830ca78c34038e161">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Income Taxes</span></span>. Income taxes are estimated for each jurisdiction in which we operate. This involves assessing current
          tax exposure together with temporary differences resulting from differing treatment of items for tax and financial statement accounting purposes. Any resulting deferred tax assets are evaluated for recoverability based on estimated future taxable
          income. To the extent it is more-likely-than-not that all or a portion of a deferred tax asset will not be realized, a valuation allowance is recorded.&#160; Our evaluation regarding whether a valuation allowance is required or should be adjusted also
          considers, among other things, the nature, frequency, and severity of recent losses, forecasts of future profitability and the duration of statutory carryforward periods.</div>
</ix:nonNumeric></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f80" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f81"><ix:continuation id="Text_88dc7114dccc4048830ca78c34038e161" continuedAt="Text_88dc7114dccc4048830ca78c34038e162">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation></ix:continuation>
        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div class="BRPFPageFooter" style="width: 100%;"></div>

          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">10</span></div>

          <div class="BRPFPageBreak" style="page-break-after: always;">
            <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 8pt; font-style: italic; font-variant: normal; text-transform: none;"><a href="#TABLEOFCONTENTS">Table of Contents</a></div>

          </div>

        </div>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f81" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f82"><ix:continuation id="Text_88dc7114dccc4048830ca78c34038e162" continuedAt="Text_88dc7114dccc4048830ca78c34038e163">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">Deferred tax assets and liabilities are measured using the enacted tax rates in effect in the years when those temporary differences are expected to reverse. The
          effect on deferred taxes from a change in tax rate is recognized through continuing operations in the period that includes the enactment date of the change. Changes in tax laws and rates could affect recorded deferred tax assets and liabilities
          in the future.</div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f82" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f83"><ix:continuation id="Text_88dc7114dccc4048830ca78c34038e163" continuedAt="Text_88dc7114dccc4048830ca78c34038e164">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f83" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f84"><ix:continuation id="Text_88dc7114dccc4048830ca78c34038e164" continuedAt="Text_88dc7114dccc4048830ca78c34038e165">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">A tax benefit from an uncertain tax position may be recognized when it is more-likely-than-not that the position will be sustained upon examination, including
          resolutions of any related appeals or litigation processes, based on the technical merits. Income tax positions must meet a more-likely-than-not recognition threshold to be recognized.</div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f84" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f85"><ix:continuation id="Text_88dc7114dccc4048830ca78c34038e165" continuedAt="Text_88dc7114dccc4048830ca78c34038e166">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f85" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f86"><ix:continuation id="Text_88dc7114dccc4048830ca78c34038e166" continuedAt="Text_88dc7114dccc4048830ca78c34038e167">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">We recognize tax liabilities for uncertain tax positions and adjust these liabilities when our judgement changes as a result of the evaluation of new information not
          previously available. Due to the complexity of some of these uncertainties, the ultimate resolution may result in a payment that is materially different from the current estimate of the tax liabilities. These differences will be reflected as
          increases or decreases to income tax expense and the effective tax rate in the period in which new information becomes available. We recognize interest and/or penalties related to all tax positions in income tax expense. To the extent that
          accrued interest and penalties do not ultimately become payable, amounts accrued will be reduced and reflected as a reduction of the overall income tax provision in the period that such determination is made.</div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f86" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f87"><ix:continuation id="Text_88dc7114dccc4048830ca78c34038e167" continuedAt="Text_88dc7114dccc4048830ca78c34038e168">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f87" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f88"><ix:continuation id="Text_88dc7114dccc4048830ca78c34038e168">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">We may be subject to periodic audits by the Internal Revenue Service and other taxing authorities. These audits may challenge certain of our tax positions, such as
          the timing and amount of deductions and allocation of taxable income to the various jurisdictions.</div>
</ix:continuation></ix:continuation>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f88" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f89">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f89" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f90"><ix:nonNumeric name="us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy" id="Text_8aa5b4b234694e06aa16da119be56771" contextRef="c20240101to20240331" escape="true" continuedAt="Text_61ab829ac02143deacda4abc2a0517131">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Stock-based compensation</span></span>. The Company&#8217;s stock-based compensation relates primarily to restricted stock unit (&#8220;RSU&#8221;)
          awards.&#160; Accounting guidance requires measurement and recognition of compensation expense at an amount equal to the grant date fair value. Compensation expense is recognized for service-based stock awards on a straight-line basis or ratably over
          the requisite service period, based on the closing price of the Company&#8217;s stock on the date of grant. The service-based awards typically vest ratably over the requisite service period, provided that the participant is employed on the vesting
          date. Compensation expense is reduced by actual forfeitures as they occur over the requisite service period of the awards.</div>
</ix:nonNumeric></ix:continuation>
      </div>

      <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f90" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f91"><ix:continuation id="Text_61ab829ac02143deacda4abc2a0517131" continuedAt="Text_61ab829ac02143deacda4abc2a0517132">
<div><br/></div>
</ix:continuation></ix:continuation>
      <div>
        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f91" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f92"><ix:continuation id="Text_61ab829ac02143deacda4abc2a0517132">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">Performance-based RSUs vest, if at all, upon the Company satisfying certain performance targets. The Company records compensation expense for awards with a
          performance condition when it is probable that the condition will be achieved.&#160; If the Company determines it is not probable a performance condition will be achieved, no compensation expense is recognized. If the Company changes its assessment in
          a subsequent period and concludes it is probable a performance condition will be achieved, the Company will recognize compensation expense ratably between the period of the change in assessment through the expected date of satisfying the
          performance condition for vesting. If the Company subsequently assesses that it is no longer probable that a performance condition will be achieved, the accumulated expense that has been previously recognized will be reversed. The compensation
          expense ultimately recognized, if any, related to performance-based awards will equal the grant date fair value based on the number of shares for which the performance condition has been satisfied.&#160; We issue shares from authorized shares upon the
          lapsing of vesting restrictions on RSUs. We do not use cash to settle equity instruments issued under stock-based compensation awards. <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">The payments of the employees&#8217; tax liability for a portion of the vested shares are satisfied by withholding shares with a fair value equal to the tax liability</span>.</div>
</ix:continuation></ix:continuation>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f92" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f93">
<div><br/>
        </div>
</ix:continuation>
        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div class="BRPFPageFooter" style="width: 100%;"></div>

          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">11</span></div>

          <div class="BRPFPageBreak" style="page-break-after: always;">
            <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 8pt; font-style: italic; font-variant: normal; text-transform: none;"><a href="#TABLEOFCONTENTS">Table of Contents</a></div>

          </div>

        </div>


        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f93" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f94"><ix:nonNumeric name="us-gaap:ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" id="Text_0fe8693fd2474d8facae9f57264b2a65" contextRef="c20240101to20240331" escape="true">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Accounts Receivable - Trade and Expected Credit Losses</span></span>. Our receivables primarily arise from the sale of merchandise
          to customers that have applied for and been granted credit. Accounts receivable are stated at amounts due, net of an allowance. Accounts receivable are generally due within 30 days of invoicing. We estimate expected credit losses based on factors
          such as the composition of accounts receivable, the age of the accounts, historical bad debt experience, and our evaluation of the financial condition and past collection history of each customer. Management believes that the historical loss
          information it has compiled is a reasonable base on which to determine expected credit losses for trade receivables held at March 31, 2024, because the composition of the trade receivables at that date is consistent with that used in developing
          the historical credit-loss percentages (i.e., the similar risk characteristics of its customers and its credit practices have not changed significantly over time). Accordingly, the allowance for expected credit losses at March 31, 2024, December
          31, 2023, and January 1, 2023 each totaled less than $<ix:nonFraction name="us-gaap:AllowanceForDoubtfulAccountsReceivable" id="Fact_fdd9339dddd6436f8fd2bbb5acca3951" contextRef="c20240331" unitRef="U002" decimals="-5" scale="6" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:AllowanceForDoubtfulAccountsReceivable" id="Fact_29af2f195a8d49d282a9fd7bce5ab37f" contextRef="c20221231" unitRef="U002" decimals="-5" scale="6" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:AllowanceForDoubtfulAccountsReceivable" id="Fact_217a8566714944898edd55485cfbd943" contextRef="c20231231" unitRef="U002" decimals="-5" scale="6" format="ixt:num-dot-decimal">0.1</ix:nonFraction></ix:nonFraction></ix:nonFraction> million.</div>
</ix:nonNumeric></ix:continuation>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f94" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f95">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f95" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f96"><ix:nonNumeric name="us-gaap:IntangibleAssetsFiniteLivedPolicy" id="Text_aea61aea53a244ec8ec68e52e0ab7446" contextRef="c20240101to20240331" escape="true">
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: justify;"><span style="font-style: italic;"><span style="text-decoration: underline;">Other Intangible Assets</span></span>. Our intangible assets and related accumulated amortization relate to trademarks and
          copyrights that are definite-lived intangibles and are subject to amortization. The weighted average amortization period is <ix:nonNumeric name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" id="Fact_42a52550eb2d47649ec9c0e6e1db0e41" contextRef="c20240101to20240331_FiniteLivedIntangibleAssetsByMajorClassAxis_IntellectualPropertyMember" format="ixt-sec:duryear">15</ix:nonNumeric> years
          for trademarks and copyrights. Amortization expense related to other intangible assets was less than $<ix:nonFraction name="us-gaap:AmortizationOfIntangibleAssets" id="Fact_eaa04ae6770041489caedab45aeb6e6b" contextRef="c20240101to20240331_RangeAxis_MaximumMember" unitRef="U002" decimals="-4" scale="6" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:AmortizationOfIntangibleAssets" id="Fact_96c54c45cb6546a68140c95a1079f52b" contextRef="c20230101to20230331_RangeAxis_MaximumMember" unitRef="U002" decimals="-4" scale="6" format="ixt:num-dot-decimal">0.01</ix:nonFraction></ix:nonFraction> million during each of
          the three months ended March 31, 2024 and 2023 was recorded in operating expenses. Based on the current amount of intangible assets subject to amortization, we estimate amortization expense to be less than $<ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" id="Fact_accd58c3c5e04becbc89a2e52977575e" contextRef="c20240331_RangeAxis_MaximumMember" unitRef="U002" decimals="-4" scale="6" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" id="Fact_8e4502fb4d37491694b306dda77097e1" contextRef="c20240331_RangeAxis_MaximumMember" unitRef="U002" decimals="-4" scale="6" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" id="Fact_6b6b6a9d1a794ff081b899c27b7d0035" contextRef="c20240331_RangeAxis_MaximumMember" unitRef="U002" decimals="-4" scale="6" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" id="Fact_28d8e5418c7c4b5183f27e9ffb914ca3" contextRef="c20240331_RangeAxis_MaximumMember" unitRef="U002" decimals="-4" scale="6" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" id="Fact_1ff94f514f8643e5b36a58943869de3e" contextRef="c20240331_RangeAxis_MaximumMember" unitRef="U002" decimals="-4" scale="6" format="ixt:num-dot-decimal">0.01</ix:nonFraction></ix:nonFraction></ix:nonFraction></ix:nonFraction></ix:nonFraction> million annually over the next five years. Our &#8220;Other intangible assets&#8221; will be fully amortized as of June 30 2024 but&#160; is now included in
          &#8220;Other assets&#8221; on the face of the balance sheet.</div>
</ix:nonNumeric></ix:continuation>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f96" continuedAt="Text_2bb975c7ca4f429c8b43f4917372d44f97">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
        </div>
</ix:continuation>

        <ix:continuation id="Text_2bb975c7ca4f429c8b43f4917372d44f97"><ix:nonNumeric name="us-gaap:ComprehensiveIncomePolicyPolicyTextBlock" id="Text_1682801bb78b4ace8c5f2da74931a983" contextRef="c20240101to20240331" escape="true">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Comprehensive Income</span></span>. Comprehensive income includes net income and certain other items that are recorded directly to
          stockholders&#8217; equity. The Company&#8217;s only source of other comprehensive income is foreign currency translation adjustments, and those adjustments are presented net of tax.</div>
</ix:nonNumeric></ix:continuation>

        <div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

      </div>

    </div>

  </div>


  <div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000;">
    <div>
      <ix:nonNumeric name="us-gaap:DebtDisclosureTextBlock" id="Text_2e00df2c18644e6d90213398e884832a" contextRef="c20240101to20240331" escape="true" continuedAt="Text_264b7eff085f4e32a22b9955b61fc56a1">
<div style="text-align: justify; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">2. NOTES PAYABLE AND LONG-TERM DEBT</div>
</ix:nonNumeric>
      <ix:continuation id="Text_264b7eff085f4e32a22b9955b61fc56a1" continuedAt="Text_264b7eff085f4e32a22b9955b61fc56a2">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>
</ix:continuation><ix:continuation id="Text_264b7eff085f4e32a22b9955b61fc56a2">
<div><span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">On January 3, 2023, the Company entered
        into a credit agreement (the &#8220;Credit Agreement&#8221;) with JPMorgan Chase Bank, N.A. Under the Credit Agreement, the bank will provide the Company a credit facility of up to $<ix:nonFraction name="us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity" id="Fact_9b228298e9114d90958413bb512e3ed5" contextRef="c20230103_LineOfCreditFacilityAxis_JPMorganChaseBankNAMember" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">5,000,000</ix:nonFraction> on standard terms and conditions, including affirmative and negative covenants set forth in the Credit Agreement.&#160; As security for the credit facility, the Company has pledged as collateral certain of its
        assets, including the Company&#8217;s cash in deposit accounts, inventory and equipment. As of the date of this filing, <ix:nonFraction name="us-gaap:ProceedsFromLinesOfCredit" id="Fact_1de7bcef13814b04b2361fae2902b806" contextRef="c20240101to20240331_LineOfCreditFacilityAxis_JPMorganChaseBankNAMember" unitRef="U002" decimals="0" scale="0" format="ixt-sec:numwordsen">no</ix:nonFraction> funds had been
        borrowed under this facility.</span>

      <br/></div>
</ix:continuation>
      <div> <br/>
      </div>

    </div>

  </div>


  <div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000;">
    <div>
      <ix:nonNumeric name="us-gaap:IncomeTaxDisclosureTextBlock" id="Text_4562bace87dd40deb127034024eac5af" contextRef="c20240101to20240331" escape="true" continuedAt="Text_1c4992848adf48548d2de83dfa0a53231">
<div style="text-align: justify; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">3.&#160; INCOME TAX</div>
</ix:nonNumeric>
      <ix:continuation id="Text_1c4992848adf48548d2de83dfa0a53231" continuedAt="Text_1c4992848adf48548d2de83dfa0a53232">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>
</ix:continuation>
      <ix:continuation id="Text_1c4992848adf48548d2de83dfa0a53232">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">Our effective tax rate for the three months ended March 31, 2024 and 2023 was <ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" id="Fact_c496b315a7f3472e8d9e9159870a9d3e" contextRef="c20240101to20240331" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">25.7</ix:nonFraction>% and <ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" id="Fact_3fb14a8c592b43498c6292bb5cf2856f" contextRef="c20230101to20230331" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">29.5</ix:nonFraction>%, respectively. Our effective tax rate differs from the federal statutory rate
        primarily due to U.S. state income tax expense, expenses that are nondeductible for tax purposes, the change in our valuation allowance associated with our deferred tax assets, and differences in tax rates in foreign jurisdictions.</div>
</ix:continuation>

      <div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

      <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div style="width: 100%;" class="BRPFPageFooter"></div>

        <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">12</span></div>

        <div class="BRPFPageBreak" style="page-break-after: always;">
          <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

        <div style="width: 100%;" class="BRPFPageHeader">
          <div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 8pt; font-style: italic; font-variant: normal; text-transform: none;"><a href="#TABLEOFCONTENTS">Table of Contents</a></div>

        </div>

      </div>

    </div>

  </div>


  <div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000;">
    <div>
      <ix:nonNumeric name="us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" id="Text_f8d8c1139e104301a84e508e142cdfe6" contextRef="c20240101to20240331" escape="true" continuedAt="Text_a22f344dd36b4494993ad13ce1a2969c1">
<div style="text-align: justify; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">4.&#160; STOCK-BASED COMPENSATION</div>
</ix:nonNumeric>
      <ix:continuation id="Text_a22f344dd36b4494993ad13ce1a2969c1" continuedAt="Text_a22f344dd36b4494993ad13ce1a2969c2">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>
</ix:continuation>
      <ix:continuation id="Text_a22f344dd36b4494993ad13ce1a2969c2" continuedAt="Text_a22f344dd36b4494993ad13ce1a2969c3">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">The Tandy Leather Factory, Inc. 2013 Restricted Stock Plan (the &#8220;2013 Plan&#8221;) was adopted by our Board of Directors in January 2013 and approved by our stockholders in
        June 2013. The 2013 Plan initially reserved up to <ix:nonFraction name="us-gaap:CommonStockCapitalSharesReservedForFutureIssuance" id="Fact_9dc49f7f6f534f0fac714e176795b3c3" contextRef="c20130131_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_TwoThousandAndThirteenRestrictedStockPlanMember_RangeAxis_MaximumMember" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">300,000</ix:nonFraction> shares for restricted stock and restricted stock unit (&#8220;RSU&#8221;) awards to our
        executive officers, non-employee directors and other key employees. In June 2020, our stockholders approved an increase to the plan reserve to <ix:nonFraction name="us-gaap:CommonStockCapitalSharesReservedForFutureIssuance" id="Fact_25dbfc09380e4cb6aa0a5ddd13bf28b2" contextRef="c20200630_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_TwoThousandAndThirteenRestrictedStockPlanMember" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">800,000</ix:nonFraction>
        shares of our common stock and extended the 2013 Plan to June 2023. Awards granted under the 2013 Plan may be service-based awards or performance-based awards, and may be subject to a graded vesting schedule with a minimum vesting period of <ix:nonNumeric name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="Fact_046ddb758c2a47339f411b46485b5b73" contextRef="c20240101to20240331_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember_RangeAxis_MinimumMember" format="ixt-sec:durwordsen">four years</ix:nonNumeric>, unless otherwise determined by the Compensation Committee of the Board of Directors that administers the plan. All shares remaining
        ungranted under the 2013 Plan were cancelled upon the adoption of the 2023 Plan described below.<br/>
      </div>
</ix:continuation>
      <ix:continuation id="Text_a22f344dd36b4494993ad13ce1a2969c3" continuedAt="Text_a22f344dd36b4494993ad13ce1a2969c4">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"> <span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"><br/>
        </span></div>
</ix:continuation>
      <ix:continuation id="Text_a22f344dd36b4494993ad13ce1a2969c4" continuedAt="Text_a22f344dd36b4494993ad13ce1a2969c5">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">The Tandy Leather Factory, Inc. 2023 Incentive Stock Plan (the &#8220;2023 Plan&#8221; and, together with the 2013 Plam, the &#8220;Plans&#8221;) was adopted by our Board of Directors in April 2023 and approved by our
          stockholders in June 2023.&#160; The 2023 Plan initially reserved up to <ix:nonFraction name="us-gaap:CommonStockCapitalSharesReservedForFutureIssuance" id="Fact_1c1fdb2b852546159651776ef9df731a" contextRef="c20230430_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember_RangeAxis_MaximumMember" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">800,000</ix:nonFraction> shares of our common stock for a variety of equity awards
          (including, but not limited to, RSUs, the only type of awards that have been granted to date) to our executive officers, non-employee directors and other key employees.&#160; In June 2023, as part of their annual director compensation, certain of our
          non-employee directors were granted a total of <ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" id="Fact_b991952eb0054d16b85bc42d22f0e355" contextRef="c20230601to20230630_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember_TitleOfIndividualAxis_DirectorMember" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">12,993</ix:nonFraction> service-based RSUs under the 2023 Plan, which will vest ratably over the next <ix:nonNumeric name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="Fact_732e55a2fac04b19a5a7031ca0e4e2f7" contextRef="c20240101to20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember_TitleOfIndividualAxis_DirectorMember" format="ixt-sec:durwordsen">four years</ix:nonNumeric>, subject to each participant&#8217;s continues service on the board as of each vesting date.&#160; In October 2023, the Company granted to Ms. Carr a
          total of <ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" id="Fact_10dbd7cf158a4c9aa231f5c9f8172616" contextRef="c20231001to20231031_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember_TitleOfIndividualAxis_ChiefExecutiveOfficerMember" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">276,000</ix:nonFraction> service-based RSUs under the 2023 Plan, which will vest ratably over the next <ix:nonNumeric name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="Fact_fe0f5ed353ee46a3aef4411f0decd324" contextRef="c20240101to20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember_TitleOfIndividualAxis_ChiefExecutiveOfficerMember" format="ixt-sec:durwordsen">three years</ix:nonNumeric>, subject to Ms. Carr&#8217;s continued employment as of each vesting date.&#160; In March 2024, the Company granted to certain employees other than
          Ms. Carr a total of <ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" id="Fact_eb15ffee44874ebf8f26fb86713e6cff" contextRef="c20240301to20240331_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">59,649</ix:nonFraction> RSUs under the 2023 Plan, which will vest ratably over the next <ix:nonNumeric name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="Fact_046b9be99e0f49c1a62f9721f8e24a15" contextRef="c20240101to20240331_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember" format="ixt-sec:durwordsen">three years</ix:nonNumeric>, subject to the recipients&#8217; continued employment as of each vesting date.</span><br/>
      </div>
</ix:continuation>
      <ix:continuation id="Text_a22f344dd36b4494993ad13ce1a2969c5" continuedAt="Text_a22f344dd36b4494993ad13ce1a2969c6">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>
</ix:continuation>

      <ix:continuation id="Text_a22f344dd36b4494993ad13ce1a2969c6" continuedAt="Text_a22f344dd36b4494993ad13ce1a2969c7"><ix:nonNumeric name="us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" id="Text_0dceb7981dab444fa416dd77a5bc26d4" contextRef="c20240101to20240331" escape="true" continuedAt="Text_dfeec8aba12f468e8e4504f8fb3d15301">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">A summary of the activity for non-vested restricted stock and RSU awards as of March 31, 2024 is presented below:</div>
</ix:nonNumeric></ix:continuation>
      <ix:continuation id="Text_a22f344dd36b4494993ad13ce1a2969c7" continuedAt="Text_a22f344dd36b4494993ad13ce1a2969c8"><ix:continuation id="Text_dfeec8aba12f468e8e4504f8fb3d15301" continuedAt="Text_dfeec8aba12f468e8e4504f8fb3d15302">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>
</ix:continuation></ix:continuation>
      <ix:continuation id="Text_a22f344dd36b4494993ad13ce1a2969c8" continuedAt="Text_a22f344dd36b4494993ad13ce1a2969c9"><ix:continuation id="Text_dfeec8aba12f468e8e4504f8fb3d15302">
<table cellspacing="0" cellpadding="0" border="0" style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">Shares</div>
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"> (in thousands)</div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">Weighted Average </div>
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">Share Price</div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; white-space: nowrap;" rowspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right;" rowspan="1" colspan="2">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right;" rowspan="1" colspan="2">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Balance, January 1, 2024</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" id="Fact_4bf11a753bb74e73b71dc2a718b90796" contextRef="c20231231_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">623</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" id="Fact_ed99f75914484f7cb14aae0a8cfd1dfa" contextRef="c20231231_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">4.37</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; white-space: nowrap;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Granted</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" id="Fact_ada1087074034278ad42bcb6e6fbd253" contextRef="c20240101to20240331_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">60</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" id="Fact_9301b61d77b448e5a36313359a104e8a" contextRef="c20240101to20240331_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">4.47</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Forfeited</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);">(<ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" id="Fact_6b5d673de7714c5eb269f88e9be988c1" contextRef="c20240101to20240331_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">6</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);">)</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" id="Fact_78a5152df4564afebb15bdcb4f30f5fa" contextRef="c20240101to20240331_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">5.00</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; white-space: nowrap;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Vested</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);">(<ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" id="Fact_93af6004dfd44469ba8520d636570aad" contextRef="c20240101to20240331_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">3</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);">)</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" id="Fact_00585fe866d940aea9f78f39924209f1" contextRef="c20240101to20240331_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">3.85</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;">Balance, <span style="text-indent: 0pt;">March 31</span>, 2024</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" id="Fact_0a3bc358d200457fb99f63a49d6a9456" contextRef="c20240331_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">674</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
            </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" id="Fact_a2e7e17d0e7a4f4987162b6d0c48d551" contextRef="c20240331_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">4.40</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>


</table>
</ix:continuation></ix:continuation>

      <ix:continuation id="Text_a22f344dd36b4494993ad13ce1a2969c9" continuedAt="Text_a22f344dd36b4494993ad13ce1a2969c10">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>
</ix:continuation>
      <ix:continuation id="Text_a22f344dd36b4494993ad13ce1a2969c10" continuedAt="Text_a22f344dd36b4494993ad13ce1a2969c11">
<div style="text-align: justify;"> <span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">The
          Company&#8217;s stock-based compensation relates primarily to RSU awards. For these service-based awards, our stock-based compensation expense, included in operating expenses, was $<ix:nonFraction name="us-gaap:AllocatedShareBasedCompensationExpense" id="Fact_124d6c9914f24bc8b9b874f2f9cd5e63" contextRef="c20240101to20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember" unitRef="U002" decimals="-5" scale="6" format="ixt:num-dot-decimal">0.2</ix:nonFraction> million and $<ix:nonFraction name="us-gaap:AllocatedShareBasedCompensationExpense" id="Fact_68919991a746440d9da3380b4b9ee21e" contextRef="c20230101to20230331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember" unitRef="U002" decimals="-5" scale="6" format="ixt:num-dot-decimal">0.2</ix:nonFraction> million for the three months ended March 31, 2024 and
          2023, respectively. </span></div>
</ix:continuation>
      <ix:continuation id="Text_a22f344dd36b4494993ad13ce1a2969c11" continuedAt="Text_a22f344dd36b4494993ad13ce1a2969c12">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>
</ix:continuation>
      <ix:continuation id="Text_a22f344dd36b4494993ad13ce1a2969c12" continuedAt="Text_a22f344dd36b4494993ad13ce1a2969c13">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">As of March 31, 2024, the Company has concluded it is not probable that the performance conditions related to performance-based RSUs granted to our CEO in October 2018
        will be achieved, and as a result <ix:nonFraction name="us-gaap:AllocatedShareBasedCompensationExpense" id="Fact_69d653a47d9b48588947555790a85c0b" contextRef="c20240101to20240331_AwardTypeAxis_PerformanceBasedRestrictedStockUnitsRSUsMember" unitRef="U002" decimals="-6" scale="6" format="ixt-sec:numwordsen">no</ix:nonFraction> compensation expense related to performance-based RSUs has been recorded.</div>
</ix:continuation>
      <ix:continuation id="Text_a22f344dd36b4494993ad13ce1a2969c13" continuedAt="Text_a22f344dd36b4494993ad13ce1a2969c14">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>
</ix:continuation>
      <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div style="width: 100%;" class="BRPFPageFooter"></div>

        <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">13</span></div>

        <div class="BRPFPageBreak" style="page-break-after: always;">
          <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

        <div style="width: 100%;" class="BRPFPageHeader">
          <div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 8pt; font-style: italic; font-variant: normal; text-transform: none;"><a href="#TABLEOFCONTENTS">Table of Contents</a></div>

        </div>

      </div>


      <ix:continuation id="Text_a22f344dd36b4494993ad13ce1a2969c14" continuedAt="Text_a22f344dd36b4494993ad13ce1a2969c15"><ix:nonNumeric name="us-gaap:ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock" id="Text_b39d00721926460fb096054641622688" contextRef="c20240101to20240331" escape="true" continuedAt="Text_b6d5bf0705e34bfeb8f57845ac90c5b01">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">As of March 31, 2024, there was unrecognized compensation cost related to non-vested, service-based RSU awards of $<ix:nonFraction name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" id="Fact_a27de55597bf43e39941e29ae0db50ed" contextRef="c20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember" unitRef="U002" decimals="-5" scale="6" format="ixt:num-dot-decimal">1.4</ix:nonFraction> million, which will be recognized in each of the following years (dollars in thousands):</div>
</ix:nonNumeric></ix:continuation>
      <ix:continuation id="Text_a22f344dd36b4494993ad13ce1a2969c15" continuedAt="Text_a22f344dd36b4494993ad13ce1a2969c16"><ix:continuation id="Text_b6d5bf0705e34bfeb8f57845ac90c5b01" continuedAt="Text_b6d5bf0705e34bfeb8f57845ac90c5b02">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>
</ix:continuation></ix:continuation>
      <ix:continuation id="Text_a22f344dd36b4494993ad13ce1a2969c16" continuedAt="Text_a22f344dd36b4494993ad13ce1a2969c17"><ix:continuation id="Text_b6d5bf0705e34bfeb8f57845ac90c5b02">
<table cellspacing="0" cellpadding="0" border="0" style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-style: italic; text-align: center;"><span style="font-style: normal; font-weight: bold;">Unrecognized Expense</span><br/>
              </div>
            </td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; text-align: left; width: 88%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); text-align: center;">2024<br/>
              </div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="tlfa:EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" id="Fact_f89fd80900ef4a1abcaa91bc92c45b83" contextRef="c20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">475</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; text-align: left; width: 88%; white-space: nowrap;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); text-align: center;">2025<br/>
              </div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="tlfa:EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" id="Fact_186fe8c222c64f86b757ab1723f9e8c3" contextRef="c20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">548</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; text-align: left; width: 88%; background-color: #CCEEFF; white-space: nowrap;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); text-align: center;">2026<br/>
              </div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="tlfa:EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" id="Fact_190bc688367c4289a106c54049a58c1a" contextRef="c20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">403</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; text-align: center; width: 88%; padding-bottom: 2px; white-space: nowrap;" rowspan="1">2027<br/>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" rowspan="1" colspan="1"><ix:nonFraction name="tlfa:EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" id="Fact_df00e8dca05a4ff0a895c9636508626b" contextRef="c20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">21</ix:nonFraction><br/>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; text-align: left; width: 88%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;"><br/>
              </div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
            </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0); font-weight: bold;"><ix:nonFraction name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" id="Fact_373180145f51400a91081eb9542c6096" contextRef="c20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,447</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>


</table>
</ix:continuation></ix:continuation>

      <ix:continuation id="Text_a22f344dd36b4494993ad13ce1a2969c17" continuedAt="Text_a22f344dd36b4494993ad13ce1a2969c18">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>
</ix:continuation>
      <ix:continuation id="Text_a22f344dd36b4494993ad13ce1a2969c18">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">We issue shares from authorized shares upon the lapsing of vesting restrictions on restricted stock and RSUs. For the three months ended March 31, 2024 and 2023, we
        issued <ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross" id="Fact_bd9e5521843c4ae691fa66e0a606d726" contextRef="c20240101to20240331_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">2,727</ix:nonFraction> and <ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross" id="Fact_2e510014a84246a5a2edc0c8afc0ff26" contextRef="c20230101to20230331_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">17,518</ix:nonFraction>
        shares, respectively, resulting from the vesting of RSUs.&#160; We do not use cash to settle equity instruments issued under stock-based compensation awards.<span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">&#160;</span><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial;">The payment of the employees&#8217; tax liability for a portion of the vested shares may be satisfied by withholding shares with a fair value equal
          to the tax liability.</span></div>
</ix:continuation>

      <div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

    </div>

  </div>


  <div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000;">
    <div>
      <ix:nonNumeric name="us-gaap:EarningsPerShareTextBlock" id="Text_92a535a80d964914a05dbbde42b79cff" contextRef="c20240101to20240331" escape="true" continuedAt="Text_fb1cc7ad82c24801b497d6d534b5c7001">
<div style="text-align: justify; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">5.&#160; EARNINGS PER SHARE</div>
</ix:nonNumeric>
      <ix:continuation id="Text_fb1cc7ad82c24801b497d6d534b5c7001" continuedAt="Text_fb1cc7ad82c24801b497d6d534b5c7002">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>
</ix:continuation>
      <ix:continuation id="Text_fb1cc7ad82c24801b497d6d534b5c7002" continuedAt="Text_fb1cc7ad82c24801b497d6d534b5c7003">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">Basic earnings per share (&#8220;EPS&#8221;) are computed based on the weighted average number of common shares outstanding during the period.&#160; Diluted EPS includes additional
        common shares that would have been outstanding if potential common shares with a dilutive effect, such as stock awards from the Company&#8217;s restricted stock plan, had been issued.&#160; Anti-dilutive securities represent potentially dilutive securities
        which are excluded from the computation of diluted EPS as their impact would be anti-dilutive.&#160; Diluted EPS is computed using the treasury stock method.</div>
</ix:continuation>
      <ix:continuation id="Text_fb1cc7ad82c24801b497d6d534b5c7003" continuedAt="Text_fb1cc7ad82c24801b497d6d534b5c7004">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>
</ix:continuation>

      <ix:continuation id="Text_fb1cc7ad82c24801b497d6d534b5c7004" continuedAt="Text_fb1cc7ad82c24801b497d6d534b5c7005"><ix:nonNumeric name="us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" id="Text_ce12b55cf24347f9b26fc6af2c30452e" contextRef="c20240101to20240331" escape="true" continuedAt="Text_b497026d93fc47a28eeac258328bb32f1">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">The following table sets forth the computation of basic and diluted EPS for the three months ended March 31, 2024 and 2023:</div>
</ix:nonNumeric></ix:continuation>
      <ix:continuation id="Text_fb1cc7ad82c24801b497d6d534b5c7005" continuedAt="Text_fb1cc7ad82c24801b497d6d534b5c7006"><ix:continuation id="Text_b497026d93fc47a28eeac258328bb32f1" continuedAt="Text_b497026d93fc47a28eeac258328bb32f2">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>
</ix:continuation></ix:continuation>
      <ix:continuation id="Text_fb1cc7ad82c24801b497d6d534b5c7006"><ix:continuation id="Text_b497026d93fc47a28eeac258328bb32f2">
<table cellspacing="0" cellpadding="0" border="0" style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-style: italic;"><br/>
              </div>
            </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="6">
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">Three Months Ended March 31,</div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><span style="font-style: italic;">(in thousands, except share data)</span> <br/>
            </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">2024</div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">2023</div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom;" rowspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right;" rowspan="1" colspan="2">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right;" rowspan="1" colspan="2">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-weight: bold;" rowspan="1">Numerator:</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right;" rowspan="1" colspan="2">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right;" rowspan="1" colspan="2">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);">Net income<br/>
              </div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_4e19d456ffd844f7a06667646aa1bacd" contextRef="c20240101to20240331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">525</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_e91f9683f1aa4ad59fb531ebe0d10a4f" contextRef="c20230101to20230331" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">664</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;">Denominator:</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;" rowspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Basic weighted-average common shares outstanding</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" id="Fact_c2e3a13fea98413ba9d5bfa17134644f" contextRef="c20240101to20240331" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">8,400,354</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" id="Fact_239aa11561bf41c7bce9ee45e10c4670" contextRef="c20230101to20230331" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">8,303,117</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none; width: 76%;" rowspan="1">
              <div style="margin-top: 0px; margin-bottom: 0px; text-align: left; text-indent: 9pt;">Dilutive effect of service-based restricted stock awards granted to Board of Directors under the Plans</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" rowspan="1" colspan="1"><ix:nonFraction name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" id="Fact_fd30ff0ad10943d0a929949c85a66f7b" contextRef="c20240101to20240331_AwardTypeAxis_RestrictedStockMember_TitleOfIndividualAxis_DirectorMember" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">5,108</ix:nonFraction></td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" rowspan="1" colspan="1"><ix:nonFraction name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" id="Fact_edf8744d417346d1b500e02ba8bfc3f1" contextRef="c20230101to20230331_AwardTypeAxis_RestrictedStockMember_TitleOfIndividualAxis_DirectorMember" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">47,050</ix:nonFraction></td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none; text-indent: 9pt; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" rowspan="1">Dilutive effect of service-based restricted stock awards granted to employees under the Plans<br/>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1"><ix:nonFraction name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" id="Fact_2d1f5adfd7d64ed984bef3258301eab1" contextRef="c20240101to20240331_AwardTypeAxis_RestrictedStockMember_TitleOfIndividualAxis_ShareBasedPaymentArrangementEmployeeMember" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">94,892</ix:nonFraction></td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1"><ix:nonFraction name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" id="Fact_9c319f8d6a404b2e91d1ff2b192f9f60" contextRef="c20230101to20230331_AwardTypeAxis_RestrictedStockMember_TitleOfIndividualAxis_ShareBasedPaymentArrangementEmployeeMember" unitRef="U001" decimals="0" scale="0" format="ixt:fixed-zero">-</ix:nonFraction></td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Diluted weighted-average common shares outstanding</div>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" id="Fact_4e19a616ff974cf8af0ee6d0dc53a575" contextRef="c20240101to20240331" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">8,500,354</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" colspan="1">
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" id="Fact_7af3f5bbeffe46229e5da65e51fdbca0" contextRef="c20230101to20230331" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">8,350,166</ix:nonFraction></div>
            </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" rowspan="1">Basic earnings per share <br/>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1">$</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1"><ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_2dd005bbd21540f0934131186fb43a5f" contextRef="c20240101to20240331" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.06</ix:nonFraction></td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1">$</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1"><ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_db6f13f08dba493495e19240cfcc8cef" contextRef="c20230101to20230331" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.08</ix:nonFraction></td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" rowspan="1">Diluted earnings per share <br/>
            </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" rowspan="1" colspan="1">$</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" rowspan="1" colspan="1"><ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_dff1cb8738e943e69579600b7c933eb1" contextRef="c20240101to20240331" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.06</ix:nonFraction></td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" rowspan="1" colspan="1">$</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" rowspan="1" colspan="1"><ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_3c434d261e024ef4aad8ccb2b8041b51" contextRef="c20230101to20230331" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.08</ix:nonFraction></td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

  </tr>


</table>
</ix:continuation></ix:continuation>

      <div><br/>
      </div>

      <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
        <div style="width: 100%;" class="BRPFPageFooter"></div>

        <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">14</span></div>

        <div style="page-break-after: always;" class="BRPFPageBreak">
          <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

        <div style="width: 100%;" class="BRPFPageHeader">
          <div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 8pt; font-style: italic; font-variant: normal; text-transform: none;"><a href="#TABLEOFCONTENTS">Table of Contents</a></div>

        </div>

      </div>

      <div> <br/>
      </div>

    </div>

  </div>


  <div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000;">
    <!--PROfilePageNumberReset%Num%15%%%-->
    <div>
      <div>
        <ix:nonNumeric name="us-gaap:CommitmentsAndContingenciesDisclosureTextBlock" id="Text_7489146fd61c4f6eaee00c250001f24a" contextRef="c20240101to20240331" escape="true" continuedAt="Text_58eafb27b19d4b71a6613b5ca2babdcb1">
<div style="text-align: justify; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">6.&#160; COMMITMENTS AND CONTINGENCIES</div>
</ix:nonNumeric>
        <ix:continuation id="Text_58eafb27b19d4b71a6613b5ca2babdcb1" continuedAt="Text_58eafb27b19d4b71a6613b5ca2babdcb2">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation>
        <ix:continuation id="Text_58eafb27b19d4b71a6613b5ca2babdcb2" continuedAt="Text_58eafb27b19d4b71a6613b5ca2babdcb3">
<div style="text-align: justify; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">Legal Proceedings</div>
</ix:continuation>
        <ix:continuation id="Text_58eafb27b19d4b71a6613b5ca2babdcb3" continuedAt="Text_58eafb27b19d4b71a6613b5ca2babdcb4">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation>
        <ix:continuation id="Text_58eafb27b19d4b71a6613b5ca2babdcb4">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">We are periodically involved in litigation that arises in the ordinary course of business and operations.&#160; There are no such matters pending that we expect to have a
          material impact on our financial position or operating results.&#160; Legal costs associated with the resolution of claims, lawsuits and other contingencies are expensed as incurred.</div>
</ix:continuation>

        <div><br/>
        </div>

      </div>

    </div>

  </div>


  <div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000;">
    <!--PROfilePageNumberReset%Num%16%%%-->
    <div>
      <div>
        <ix:nonNumeric name="tlfa:ShareRepurchaseProgramAndShareRepurchasesTextBlock" id="Text_a41e88e2bd524f47863e75928f9c401f" contextRef="c20240101to20240331" escape="true" continuedAt="Text_27e700d1c9424268a4271061d58fe7d41">
<div style="text-align: justify; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">7.&#160; SHARE REPURCHASE PROGRAM AND SHARE REPURCHASES</div>
</ix:nonNumeric>
        <ix:continuation id="Text_27e700d1c9424268a4271061d58fe7d41" continuedAt="Text_27e700d1c9424268a4271061d58fe7d42">
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>
</ix:continuation>
        <ix:continuation id="Text_27e700d1c9424268a4271061d58fe7d42">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">On August 8, 2022, the Board of Directors approved a new program to repurchase up to $<ix:nonFraction name="us-gaap:StockRepurchaseProgramAuthorizedAmount1" id="Fact_43f244beae764cfc9f8ddc29002377f4" contextRef="c20220808_RangeAxis_MaximumMember" unitRef="U002" decimals="-5" scale="6" format="ixt:num-dot-decimal">5.0</ix:nonFraction> million of the Company&#8217;s common stock between that date and August 31, 2024.&#160; As of March 31, 2024, $<ix:nonFraction name="us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" id="Fact_97819d24016b4e78b7bcb84f4a3292fc" contextRef="c20240331" unitRef="U002" decimals="-5" scale="6" format="ixt:num-dot-decimal">5.0</ix:nonFraction>
          million remained available for repurchase under this new program.</div>
</ix:continuation>

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

        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">15</span></div>

          <div class="BRPFPageBreak" style="page-break-after: always;">
            <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 8pt; font-style: italic; font-variant: normal; text-transform: none;"><a href="#TABLEOFCONTENTS">Table of Contents</a></div>

          </div>

        </div>

        <!--PROfilePageNumberReset%Num%19%%%--> </div>

    </div>

  </div>


  <div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000;">
    <div>
      <div>
        <a id="ManagementsDiscussionandA"><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: rgb(0, 0, 0);" class="DSPFListTable">


  <tr>

    <td style="width: 36pt; vertical-align: top; font-weight: bold;">Item 2.</td>

    <td style="width: auto; vertical-align: top;">
                <div style="font-weight: bold;">Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations.</div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <div style="text-align: justify; font-weight: bold;"><span style="text-decoration: underline;">The Business and Strategy</span></div>

        <div><br/>
        </div>

        <div style="text-align: justify;">Tandy Leather Factory, Inc. is one of the world&#8217;s largest specialty retailers of leather and leathercraft-related items.&#160; Founded in 1919 in Fort Worth, Texas, and organized in 2005 as a Delaware corporation, the
          Company introduced leathercrafting to millions of American and later Canadian and other international customers and has built a track record as the trusted source of quality leather, tools, hardware, supplies, kits and teaching materials for
          leatherworkers everywhere.&#160; Today, our mission remains to build on our legacy of inspiring the timeless art and trade of leatherworking.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">What differentiates Tandy from the competition is our high brand awareness and strong brand equity and loyalty, our network of retail stores that provides convenience, a high-touch customer service experience, and
          a hub for the local leathercrafting community, and our 100-year heritage.&#160; We believe that this combination of qualities is unique to Tandy and gives the brand competitive advantages that are difficult for others to replicate.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">We sell our products primarily through company-owned stores and through orders generated from our global websites, and through direct account representatives in our commercial division.&#160; We also manufacture leather
          lace, cut leather pieces and most of the do-it-yourself kits that are sold in our stores and on our websites.&#160; We also offer production services to our business customers such as cutting (&#8220;clicking&#8221;), splitting, and some assembly. We maintain our
          principal offices at 1900 Southeast Loop 820, Fort Worth, Texas 76140.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Currently, the Company operates a total of 102 retail stores.&#160; There are 91 stores in the United States (&#8220;U.S,&#8221;), ten stores in Canada and one store in Spain.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Tandy Leather has been introducing people to leatherworking for over 100 years.&#160; Our stores have been and continue to be our competitive advantage: where our consumers learn the craft in classes, open table, and
          from the expertise of our store staff, where they can touch, feel and test the product, and where they can connect and commune with others passionate about leather.&#160; Our websites provide inspiration, detailed product descriptions and
          specifications, educational information and videos, and a convenient place to also purchase product &#8211; especially for those who are far from our retail stores, including a growing international customer base.&#160; For many of our retail and web
          customers, leatherworking evolves from a passion to a trade.&#160; Our Commercial Division is tailored to the needs of those customers who build businesses around leather.&#160; With dedicated direct account representatives, a direct-from-our-warehouse
          shipping model, bulk and volume-based competitive pricing, customized product development, and production and pre-production services, we are building long-term, strategic relationships with our largest customers.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">In 2019, with the arrival of a new management team, we began the process of assessing and reinvigorating the business.&#160; We focused in three broad strategic initiative areas: 1) improving our brand proposition, 2)
          rebuilding our foundation: the talent, processes, tools and systems needed to modernize and efficiently operate the business, and 3) creating a vision and road map for long-term growth.&#160; We had significant achievements in all of these areas
          including significantly improving the product quality, breadth of assortment and value, dramatically improving the website and web operations, rebuilding the team, people policies and culture, and replacing all of the key systems, among many
          other accomplishments.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">We made this steady progress to transform and reinvigorate our business even in the face of two very significant obstacles: a financial restatement and COVID-19.&#160; With those obstacles behind us, we have been
          focused on improving our financial sustainability and profitability.&#160; In the short-term, we are managing operating expenses and gross margin to deliver free operating cash and operating income even in the face of possible continued economic
          headwinds.&#160; We will also continue to selectively invest in profitable sales growth where it makes sense, but rebuilding a durable, profitable business model is the highest priority.</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-weight: bold;"><span style="text-decoration: underline;">Critical Accounting Policies</span></div>

        <div><br/>
        </div>

        <div style="text-align: justify;">A description of our critical accounting policies appears in Item 7 &#8220;Management&#8217;s Discussions and Analysis of Financial Condition and Results of Operations&#8221; in our annual report on Form 10-K for the year ended
          December 31, 2023.</div>

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

        <div style="text-align: justify;"><span style="font-weight: bold;">Revenue Recognition</span>. Our revenue is earned from sales of merchandise and generally occurs via three methods: (1) at the store counter, (2) via web sales, and (3) sales of
          product directly to commercial customers. We recognize revenue when we satisfy the performance obligation of transferring control of product merchandise over to a customer. At the store counter, our performance obligation is met, and revenue is
          recognized when a sales transaction occurs with a customer. When merchandise is shipped to a customer, our performance obligation is met, and revenue is recognized when control passes to the customer. Shipping terms are normally free on board
          (&#8220;FOB&#8221;) shipping point and control passes when the merchandise is shipped to the customer. Sales tax and comparable foreign tax are excluded from net sales, while shipping charged to our customers is included in net sales. Net sales are based on
          the amount of consideration that we expect to receive, reduced by estimates for future merchandise returns.</div>

        <div>&#160;</div>

        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">16</span></div>

          <div class="BRPFPageBreak" style="page-break-after: always;">
            <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: rgb(0, 0, 0); background-color: rgb(0, 0, 0);"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 8pt; font-style: italic; font-variant: normal; text-transform: none;"><a href="#TABLEOFCONTENTS">Table of Contents</a></div>

          </div>

        </div>

        <div style="text-align: justify;">The sales return allowance is based each year on historical customer return behavior and other known factors and reduces net sales and cost of sales, accordingly. The sales return allowance included in accrued
          expense and other liabilities was $0.1 million, $0.1 million, and $0.2 million as of March 31, 2024, December 31, 2023, and January 1, 2023. The estimated value of merchandise expected to be returned included in other current assets was $0.1
          million as of March 31, 2024, December 31, 2023, and January 1, 2023.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">We record a gift card liability for the unfulfilled performance obligation on the date we issue a gift card to a customer. We record revenue and reduce the gift card liability as the customer redeems the gift card.
          In addition, for gift card breakage, we recognize a proportionate amount for the expected unredeemed gift cards over the expected customer redemption period, which is one year. As of March 31, 2024, December 31, 2023 and January1, 2023, our gift
          card liability, included in accrued expenses and other liabilities, was $0.2 million, $0.3 million and $0.3 million, respectively. We recognized gift card revenue of $0.2 million for the three months ended March 31, 2024 and 2023.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">For the three months ended March 31, 2024 and 2023, we recognized $0.1 million and $0.2 million respectively in net sales associated with gift cards.</div>

        <div>&#160;</div>

        <div style="text-align: justify;"><span style="font-weight: bold;">Inventory.</span>&#160; Inventory is stated at the lower of first-in, first-out (&#8220;FIFO&#8221;) cost or net realizable value, and FIFO layers are maintained at the location level.&#160; Finished
          goods held for sale includes the cost of merchandise purchases, the costs to bring the merchandise to our Texas distribution center, warehousing and handling expenditures, and distributing and delivering merchandise to our stores.&#160; These costs
          include depreciation of long-lived assets utilized in acquiring, warehousing and distributing inventory.&#160; Manufacturing inventory including raw materials and work-in-process is valued on a FIFO basis using full absorption accounting which
          includes material, labor, and other applicable manufacturing overhead.&#160; Carrying values of inventory are analyzed and, to the extent that the cost of inventory exceeds the net realizable value, provisions are made to reduce the carrying amount of
          the inventory.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">We regularly review all inventory items to determine if there are (i) damaged goods (e.g., for leather, excessive scars or damage from ultra-violet (&#8220;UV&#8221;) light), (ii) items that need to be removed from our product
          line (e.g., slow-moving items, inability of a supplier to provide items of acceptable quality or quantity, and to maintain freshness in the product line) and (iii) pricing actions that need to be taken to adequately value our inventory at the
          lower of FIFO cost or net realizable value.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Since the determination of net realizable value of inventory involves both estimation and judgement with regard to market values and reasonable costs to sell, differences in these estimates could result in ultimate
          valuations that differ from the recorded asset.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">The majority of inventory purchases and commitments are made in U.S. dollars in order to limit the Company&#8217;s exposure to foreign currency fluctuations.&#160; Goods shipped to us are recorded as inventory owned by us
          when the risk of loss shifts to us from the supplier.&#160; Inventory is physically counted twice annually in the Texas distribution center.&#160; At the store level, inventory is physically counted each quarter.&#160; Inventory is then adjusted in our
          accounting system to reflect actual count results.</div>

        <div>&#160;</div>

        <div style="text-align: justify;"><span style="font-weight: bold;">Leases.</span>&#160; We lease certain real estate for our retail store locations and may lease warehouse equipment for our Texas distribution center under long-term lease agreements;
          however, as of the end of December 31, 2024, we did not have any warehouse equipment lease.&#160; We determine if an arrangement is a lease at inception and recognize right-of-use (&#8220;ROU&#8221;) assets and lease liabilities at commencement date based on the
          present value of the lease payments over the lease term.&#160; We elected not to record leases with an initial term of 12 months or less on the balance sheet for all our asset classes.</div>

        <div>&#160;</div>

        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">17</span></div>

          <div class="BRPFPageBreak" style="page-break-after: always;">
            <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: rgb(0, 0, 0); background-color: rgb(0, 0, 0);"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 8pt; font-style: italic; font-variant: normal; text-transform: none;"><a href="#TABLEOFCONTENTS">Table of Contents</a></div>

          </div>

        </div>

        <div style="text-align: justify;">For operating leases, the present value of our lease liabilities may include: (1) rental payments adjusted for inflation or market rates, and (2) lease terms with options to renew the lease or options to purchase
          leased equipment, when it is reasonably certain we will exercise such an option.&#160; The exercise of lease renewal or purchase option is generally at our discretion.&#160; Payments based on a change in an index or market rate are not considered in the
          determination of lease payments for purposes of measuring the related lease liability.&#160; We discount lease payments using our incremental borrowing rate based on information available as of the measurement date.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">We recognize rent expense related to our operating leases assets on a straight-line basis over the lease term. Rent expense is recorded in operating expenses. The net adjustment between rent expense and the actual
          cash paid during the fiscal year has been recorded as accrued expenses and other liabilities in the accompanying consolidated balance.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">For finance leases, our right-of-use assets are amortized on a straight-line basis over the earlier of the useful life of the right-of-use asset or the end of the lease term with rent expense recorded to operating
          expenses.&#160; We adjust the lease liability to reflect lease payments made during the period and interest incurred on the lease liability using the effective interest method. The interest expense incurred is recorded in interest expense on the
          Condensed Consolidated Statements of Operations and Comprehensive Income.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">The depreciable life of related leasehold improvements is based on the shorter of the useful life or the lease term.&#160; We also perform interim reviews of our lease assets for impairment when evidence exists that the
          carrying value of an asset group, including a lease asset, may not be recoverable.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">None of our lease agreements contain contingent rental payments, material residual value guarantees or material restrictive covenants.&#160; We have no sublease agreements and no lease agreements in which we are named
          as a lessor.</div>

        <div>&#160;</div>

        <div style="text-align: justify;"><span style="font-weight: bold;">Impairment of Long-Lived Assets</span>.&#160; We evaluate long-lived assets on a quarterly basis to identify events or changes in circumstances (&#8220;triggering events&#8221;) that indicate the
          carrying value of certain assets may not be recoverable.&#160; Upon the occurrence of a triggering event, right-of-use (&#8220;ROU&#8221;) lease assets, property and equipment and definite-lived intangible assets are reviewed for impairment and an impairment loss
          is recorded in the period in which it is determined that the carrying amount of the assets is not recoverable.&#160; The determination of recoverability is made based upon the estimated undiscounted future net cash flows of assets grouped at the
          lowest level for which there are identifiable cash flows independent of the cash flows of other groups of assets with such cash flows to be realized over the estimated remaining useful life of the primary asset within the asset group.&#160; The
          Company determined the lowest level of identifiable cash flows that are independent of other asset groups to be primarily at the individual store level.&#160; If the estimated undiscounted future net cash flows for a given store are less than the
          carrying amount of the related store assets, an impairment loss is determined by comparing the estimated fair value with the carrying value of the related assets.&#160; The impairment loss is then allocated across the asset group&#8217;s major
          classifications which in this case are operating lease assets and property and equipment.&#160; Triggering events at the store level could include material declines in operational and financial performance or planned changes in the use of assets, such
          as store relocation or store closure.&#160; This evaluation requires management to make judgements relating to future cash flows, growth rates and economic and market conditions.&#160; The fair value of an asset group is estimated using a discounted cash
          flow valuation method.</div>

        <div>&#160;</div>

        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">18</span></div>

          <div class="BRPFPageBreak" style="page-break-after: always;">
            <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: rgb(0, 0, 0); background-color: rgb(0, 0, 0);"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 8pt; font-style: italic; font-variant: normal; text-transform: none;"><a href="#TABLEOFCONTENTS">Table of Contents</a></div>

          </div>

        </div>

        <div style="text-align: justify;"><span style="font-weight: bold;">Stock-based Compensation.</span>&#160; The Company&#8217;s stock-based compensation relates primarily to restricted stock unit (&#8220;RSU&#8221;) awards.&#160; Accounting guidance requires measurement and
          recognition of compensation expense at an amount equal to the grant date fair value.&#160; Compensation expense is recognized for service-based stock awards on a straight-line basis or ratably over the requisite service period, based on the closing
          price of the Company&#8217;s stock on the date of grant.&#160; The service-based awards typically vest ratably over the requisite service period, provided that the participant is employed on the vesting date.&#160; The total compensation expense is reduced by
          actual forfeitures as they occur over the requisite service period of the awards.&#160; Performance-based RSUs vest, if at all, upon the Company satisfying certain performance targets.&#160; The Company records compensation expense for awards with a
          performance condition when it is probable that the condition will be achieved.&#160; If the Company determines it is not probable a performance condition will be achieved, no compensation expense is recognized.&#160; If the Company changes its assessment
          in a subsequent period and concludes it is probable a performance condition will be achieved, the Company will recognize compensation expense ratably between the period of the change in assessment through the expected date of satisfying the
          performance condition for vesting.&#160; If the Company subsequently assesses that it is no longer probable that a performance condition will be achieved, the accumulated expense that has been previously recognized will be reversed.&#160; The compensation
          expense ultimately recognized, if any, related to performance-based awards will equal the grant date fair value based on the number of shares for which the performance condition has been satisfied.&#160; We issue shares from authorized shares upon the
          lapsing of vesting restrictions on RSUs.&#160; We do not use cash to settle equity instruments issued under stock-based compensation awards.</div>

        <div>&#160;</div>

        <div style="text-align: justify;"><span style="font-weight: bold;">Income Taxes.</span>&#160; Income taxes are estimated for each jurisdiction in which we operate.&#160; This involves assessing current tax exposure together with temporary differences
          resulting from differing treatment of items for tax and financial statement accounting purposes.&#160; Any resulting deferred tax assets are evaluated for recoverability based on estimated future taxable income.&#160; To the extent it is
          more-likely-than-not that all or a portion of a deferred tax asset will not be realized, a valuation allowance is recorded.&#160; Our evaluation regarding whether a valuation allowance is required or should be adjusted also considers, among other
          things, the nature, frequency, and severity of recent losses, forecasts of future profitability and the duration of statutory carryforward periods.&#160; Deferred tax assets and liabilities are measured using the enacted tax rates in effect in the
          years when those temporary differences are expected to reverse.&#160; The effect on deferred taxes from a change in tax rate is recognized through continuing operations in the period that includes the enactment date of the change.&#160; Changes in tax laws
          and rates could affect recorded deferred tax assets and liabilities in the future.&#160; A tax benefit from an uncertain tax position may be recognized when it is more-likely-than-not that the position will be sustained upon examination, including
          resolutions of any related appeals or litigation processes, based on the technical merits.&#160; Income tax positions must meet a more-likely-than-not recognition threshold to be recognized.&#160; We recognize tax liabilities for uncertain tax positions
          and adjust these liabilities when our judgement changes as a result of the evaluation of new information not previously available.&#160; Due to the complexity of some of these uncertainties, the ultimate resolution may result in a payment that is
          materially different from the current estimate of the tax liabilities.&#160; These differences will be reflected as increases or decreases to income tax expense and the effective tax rate in the period in which new information becomes available.&#160; We
          recognize interest and/or penalties related to all tax positions in income tax expense. To the extent that accrued interest and penalties do not ultimately become payable, amounts accrued will be reduced and reflected as a reduction of the
          overall income tax provision in the period that such determination is made.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">We may be subject to periodic audits by the Internal Revenue Service and other taxing authorities.&#160; These audits may challenge certain of our tax positions, such as the timing and amount of deductions and
          allocation of taxable income to the various jurisdictions.</div>

        <div>&#160;</div>

        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">19</span></div>

          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0px; height: 2px; color: rgb(0, 0, 0); background-color: rgb(0, 0, 0); clear: both;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 8pt; font-style: italic; font-variant: normal; text-transform: none;"><a href="#TABLEOFCONTENTS">Table of Contents</a></div>

          </div>

        </div>

        <div style="text-align: justify; font-weight: bold;"><span style="text-decoration: underline;">Results of Operations</span></div>

        <div><br/>
        </div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">Three Months Ended March 31, 2024 and 2023</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">The following table presents selected financial data:</div>

        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" border="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%;">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="14" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">
                <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">Three Months Ended March 31,</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">
                <div style="color: rgb(0, 0, 0); font-style: italic;">(in thousands)</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">
                <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">2024</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">
                <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">2023</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">
                <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">$ Change</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">
                <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">% Change</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">Sales</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">$</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">19,275</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">$</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">20,360</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">$</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">(1,085</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">)</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">(5.3</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">)%</div>
              </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%; white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">Gross profit</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">10,920</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">11,819</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">(899</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">)</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">(7.6</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">)%</div>
              </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">Gross margin percentage</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">56.7</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">%</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">58.1</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">%</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">(1.4</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">)%</div>
              </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%; padding-bottom: 2px; white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">Operating expenses</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">10,271</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">10,838</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">(567</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">)</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">(5.2</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">)%</div>
              </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">Income from operations</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">$</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">649</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">$</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">981</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">$</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">(332</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">)</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">(33.9</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">)%</div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <div style="text-align: justify; font-weight: bold;">Net Sales</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">Consolidated net sales for the quarter ended March 31, 2024 decreased $1.1 million, or 5.3%, compared to the corresponding prior year period.&#160; We believe the decrease in sales was due to ongoing weak consumer
          demand compared to a year ago.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">Our store footprint consisted of 102 and 102 stores at March 31, 2024 and March 31, 2023, respectively.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">Since January 1, 2023, we closed one store in Baldwin Park, CA in March 2023. <span style="color: rgb(0, 0, 0);">We evaluate a number of factors when determining whether to close existing stores, including the
            4-wall cash flow trend and longer-term projection for the store, the long-term sales trend, ongoing cost of store operations, date of lease expiration, quality of the store and location, and the size and potential of the trade area including
            proximity to other existing stores, among other variables.&#160; We use similar factors to determine whether to open new stores.</span></div>

        <div>&#160;</div>

        <div style="text-align: justify; font-weight: bold;">Gross Profit</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">Gross profit decreased by $0.9 million, or 7.6%, compared to the same period in 2023, and our gross margin percentage for the quarter ended March 31, 2024, decreased year over year by 140 basis points&#160; due to
          increased promotional activity to compensate for weaker consumer demand.</div>

        <div><br/>
        </div>

        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">20</span></div>

          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0px; height: 2px; color: rgb(0, 0, 0); background-color: rgb(0, 0, 0); clear: both;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 8pt; font-style: italic; font-variant: normal; text-transform: none;"><a href="#TABLEOFCONTENTS">Table of Contents</a></div>

          </div>

        </div>

        <div style="text-align: justify; font-weight: bold;">Operating expenses</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">Operating expenses decreased $0.6 million or 5.2% compared to the corresponding prior year period, primarily as a result of a decrease in retail store salary of $0.2 million combined, $0.1 million temporary
          reduction in corporate salary, RSU and bonus expenses of $0.6 million, and a decrease in freight to customers of $0.1 million, offset by an increase in occupancy expense, marketing expense and supplies of $0.3 million.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; font-weight: bold;">Income Taxes</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">Our effective tax rate for the three months ended March 31, 2024 was 25.7% compared to 29.5% for the same period in 2023.&#160; Our effective tax rate differs from the federal statutory rate primarily due to U.S. state
          income tax expense, expenses that are nondeductible for tax purposes, and the change in our valuation allowance associated with our deferred tax assets.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; font-weight: bold;"><span style="text-decoration: underline;">Capital Resources, Liquidity and Financial Condition</span></div>

        <div><br/>
        </div>

        <div style="text-align: justify;">We require cash principally for day-to-day operations, to purchase inventory and to finance capital investments.&#160; We expect to fund our operating and liquidity needs primarily from a combination of current cash
          balances and cash generated from operating activities.&#160; Any excess cash will be invested as determined by our Board of Directors in accordance with its approved investment policy.&#160; Our cash balances as of March 31, 2024 totaled $12.3 million.&#160; </div>

        <div><br/>
        </div>

        <div style="text-align: justify;">On January 3, 2023, the Company entered into a credit agreement (the &#8220;Credit Agreement&#8221;) with JPMorgan Chase Bank, N.A.&#160; Under the Credit Agreement, the bank will provide the Company a credit facility of up to
          $5,000,000 on standard terms and conditions, including affirmative and negative covenants set forth in the Credit Agreement.&#160; As security for the credit facility, the Company has pledged as collateral certain of its assets, including the
          Company&#8217;s cash in deposit accounts, inventory and equipment.&#160; As of the date of this filing, no funds had been borrowed under this facility.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; font-weight: bold;">Share Repurchase Program and Share Repurchase</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">On August 8, 2022, the Board of Directors approved a new program to repurchase up to $5.0 million of the Company&#8217;s common stock between that date and August 31, 2024.&#160; As of March 31, 2024, $5.0 million remained
          available for repurchase under this new program.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; font-weight: bold;">Cash Flows</div>

        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" border="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%;">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">
                <div style="color: rgb(0, 0, 0); font-weight: bold;">(amounts in thousands)</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">
                <div style="text-align: right; color: rgb(0, 0, 0); font-weight: bold;">2024</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">
                <div style="text-align: right; color: rgb(0, 0, 0); font-weight: bold;">2023</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);">
                <div style="color: rgb(0, 0, 0);">Net cash provided by operating activities</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);">
                <div style="color: rgb(0, 0, 0);">$</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);">
                <div style="color: rgb(0, 0, 0);">1,086</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);">
                <div style="color: rgb(0, 0, 0);">$</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);">
                <div style="color: rgb(0, 0, 0);">797</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
                <div style="color: rgb(0, 0, 0);">Net cash used in investing activities</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
                <div style="color: rgb(0, 0, 0);">(1,227</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">)</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
                <div style="color: rgb(0, 0, 0);">(87</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">)</div>
              </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);">
                <div style="color: rgb(0, 0, 0);">Net cash used in financing activities</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);">
                <div style="color: rgb(0, 0, 0);">(1</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">)</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);">
                <div style="color: rgb(0, 0, 0);">-</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">Effect of exchange rate changes on cash and cash equivalents</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">298</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">(39</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">
                <div style="color: rgb(0, 0, 0);">)</div>
              </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: rgb(204, 238, 255);">
                <div style="color: rgb(0, 0, 0); font-weight: bold;">Net increase in cash and cash equivalents</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0); font-weight: bold;">156</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="color: rgb(0, 0, 0); font-weight: bold;">671</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

  </tr>


</table>
        <div><br/>
        </div>

        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">21</span></div>

          <div class="BRPFPageBreak" style="page-break-after: always;">
            <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: rgb(0, 0, 0); background-color: rgb(0, 0, 0);"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 8pt; font-style: italic; font-variant: normal; text-transform: none;"><a href="#TABLEOFCONTENTS">Table of Contents</a></div>

          </div>

        </div>

        <div style="text-align: justify;">For the three months ended March 31, 2024, cash from operations generated $1.1 million driven by a net income of $0.5 million, non-cash expense of $1.4 million, including depreciation, amortization, and stock-based
          compensation, a net reduction in inventory of $1.2 million and a decrease in prepaid expense of $0.1 million, partially offset by a reduction to working capital including a net $1.1 million decrease in accrued expense and other liabilities, a
          reduction in lease liability payments of $0.9 million,&#160; and a decrease in accounts payable trade of $0.1 million. We invested $1.2 million in capital expenditure primarily related to replacing a new roof at our corporate headquarters and other
          new capital investments due to new store openings and store relocations.&#160; The activities above, in addition to the effect of exchange rate changes, resulted in a net increase in cash of $0.2 million.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">For the three months ended March 31, 2023, cash from operations generated $0.8 million driven by a net income of $0.7 million, non-cash expense of $1.4 million, including depreciation, amortization, and stock-based
          compensation, a net reduction in inventory of $2.4 million that includes adjustments, offset by a reduction to working capital including a net $2.8 million decrease in accounts payable and accrued liabilities mostly due to bonus accrual and
          contract liabilities, and a reduction in lease liability payments of $0.9 million. We invested $0.1 million in capital expenditure primarily related to system modifications and improvements.&#160; The activities above, in addition to the effect of
          exchange rate changes, resulted in a net increase in cash of $0.7 million.</div>

        <div><br/>
        </div>

        <a id="ControlsandProcedures."><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: rgb(0, 0, 0);" class="DSPFListTable">


  <tr>

    <td style="width: 36pt; vertical-align: top; font-weight: bold;">Item 4.</td>

    <td style="width: auto; vertical-align: top;">
                <div style="font-weight: bold;">Controls and Procedures.</div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">Evaluation of Disclosure Controls and Procedures</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">Our management team, under the supervision and with the participation of our Chief Executive Officer (who serves as our principal executive officer and principal financial officer) , evaluated the effectiveness of
          the design and operation of our disclosure controls and procedures as such term is defined under Rule 13a-15(e) promulgated under the Securities Exchange Act of 1934, as amended, as of the last day of the fiscal period covered by this report,
          March 31, 2024. The term disclosure controls and procedures means our controls and other procedures that are designed to ensure that information required to be disclosed by us in the reports that we file or submit under the Securities Exchange
          Act of 1934, as amended, is recorded, processed, summarized and reported, within the time periods specified in the Securities and Exchange Commission&#8217;s rules and forms. Disclosure controls and procedures include, without limitation, controls and
          procedures designed to ensure that information required to be disclosed by us in the reports that we file or submit under the Securities Exchange Act of 1934, as amended, is accumulated and communicated to management, including our principal
          executive and principal financial officer, or persons performing similar functions, as appropriate to allow timely decisions regarding required disclosure. Based on this evaluation, our management, with the participation of our Chief Executive
          Officer concluded that, as of March 31, 2024, our disclosure controls and procedures were effective at a reasonable assurance level.</div>

        <div><br/>
        </div>

        <div style="font-weight: bold;">Changes in Internal Control Over Financial Reporting</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Over the last three years, we have put a full program of both preventative and detective procedures in place to address all of our previously reported material weaknesses and significant deficiencies in internal
          controls over financial reporting and disclosure controls.&#160; This program has now been tested over multiple periods and found by management to be effective.</div>

        <div><br/>
        </div>

        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">22</span></div>

          <div class="BRPFPageBreak" style="page-break-after: always;">
            <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: rgb(0, 0, 0); background-color: rgb(0, 0, 0);"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 8pt; font-style: italic; font-variant: normal; text-transform: none;"><a href="#TABLEOFCONTENTS">Table of Contents</a></div>

          </div>

        </div>

        <div style="text-align: justify; font-weight: bold;">PART II.&#160; <a id="OTHERINFORMATION"><!--Anchor--></a>OTHER INFORMATION</div>

        <div><br/>
        </div>

        <a id="LegalProceedings."><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: rgb(0, 0, 0);" class="DSPFListTable">


  <tr>

    <td style="width: 36pt; vertical-align: top; font-weight: bold;">Item 1.</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-weight: bold;">Legal Proceedings.</div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <div style="text-align: justify;">The information contained in Note 6, <span style="font-style: italic;">Commitments and Contingencies</span> to the Condensed Consolidated Financial Statements included in Part I, Item 1 of this Report is hereby
          incorporated into this Item 1 by reference.</div>

        <div><br/>
        </div>

        <a id="RiskFactors."><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: rgb(0, 0, 0);" class="DSPFListTable">


  <tr>

    <td style="width: 45pt; vertical-align: top; font-weight: bold;">Item 1A.</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-weight: bold;">Risk Factors.</div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <div style="text-align: justify;">Our Risk Factors are discussed fully in our Annual Report on Form 10-K for the fiscal year ended December 31, 2023 and incorporated herein by reference.</div>

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

        <a id="UnregisteredSalesofEquity"><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: rgb(0, 0, 0);" class="DSPFListTable">


  <tr>

    <td style="width: 36pt; vertical-align: top; font-weight: bold;">Item 2.</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-weight: bold;">Unregistered Sales of Equity Securities and Use of Proceeds.</div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <div style="text-align: justify; font-weight: bold;">Purchases of Equity Securities by the Issuer and Affiliated Purchasers</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">The following table provides information about purchases we have made of our common stock during the quarter ended March 31, 2024:</div>

        <div><br/>
        </div>

        <div>
          <div style="text-align: center; font-weight: bold;">ISSUER PURCHASES OF EQUITY SECURITIES</div>

        </div>

        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" border="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%;">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);">
                <div style="text-align: center; font-weight: bold;">Period</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">
                <div style="text-align: center; font-weight: bold;">(a) Total </div>
                <div style="text-align: center; font-weight: bold;">number of </div>
                <div style="text-align: center; font-weight: bold;">shares </div>
                <div style="text-align: center; font-weight: bold;">purchased</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">
                <div style="text-align: center; font-weight: bold;">(b) Average </div>
                <div style="text-align: center; font-weight: bold;">price paid </div>
                <div style="text-align: center; font-weight: bold;">per share</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">
                <div style="text-align: center; font-weight: bold;">(c) Total number of</div>
                <div style="text-align: center; font-weight: bold;">shares purchased as</div>
                <div style="text-align: center; font-weight: bold;">part of publicly</div>
                <div style="text-align: center; font-weight: bold;">announced plans or</div>
                <div style="text-align: center; font-weight: bold;">programs</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;">
                <div style="text-align: center; font-weight: bold;">(d) Maximum value</div>
                <div style="text-align: center; font-weight: bold;">of shares that may</div>
                <div style="text-align: center; font-weight: bold;">yet be purchased</div>
                <div style="text-align: center; font-weight: bold;">under the plans or</div>
                <div style="text-align: center; font-weight: bold;">programs</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: rgb(204, 238, 255);">
                <div>January 1 &#8211; January 31, 2024</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);">
                <div>&#8212;</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);">
                <div>&#8212;</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);">
                <div>&#8212;</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);">
                <div>$</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);">
                <div>4,997,000</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%;">
                <div>February 1 &#8211; February 29, 2024</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
                <div>&#8212;</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
                <div>&#8212;</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
                <div>&#8212;</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">
                <div>$</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
                <div>4,997,000</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%; padding-bottom: 2px; background-color: rgb(204, 238, 255);">
                <div>March 1 &#8211; March 31, 2024</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
                <div>&#8212;</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; background-color: rgb(204, 238, 255);">
                <div>&#8212;</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
                <div>&#8212;</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);">
                <div>$</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; background-color: rgb(204, 238, 255);">
                <div>4,997,000</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%;">
                <div>Total</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
                <div>&#8212;</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
                <div>&#8212;</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
                <div>&#8212;</div>
              </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>


</table>
        <div><br/>
        </div>

        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">23</span></div>

          <div class="BRPFPageBreak" style="page-break-after: always;">
            <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: rgb(0, 0, 0); background-color: rgb(0, 0, 0);"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 8pt; font-style: italic; font-variant: normal; text-transform: none;"><a href="#TABLEOFCONTENTS">Table of Contents</a></div>

          </div>

        </div>

        <a id="Exhibits."><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: rgb(0, 0, 0);" class="DSPFListTable">


  <tr>

    <td style="width: 36pt; vertical-align: top; font-weight: bold;">Item 6.</td>

    <td style="width: auto; vertical-align: top;">
                <div style="font-weight: bold;">Exhibits.</div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <div>
          <table cellspacing="0" cellpadding="0" border="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: rgb(0, 0, 0);">


  <tr>

    <td style="width: 9%; vertical-align: top;">
                  <div style="font-weight: bold;">Exhibit</div>
                  <div style="font-weight: bold;"><span style="text-decoration: underline;">Number</span></div>
                </td>

    <td style="width: 91%; vertical-align: top;">
                  <div>&#160;</div>
                  <div style="text-align: center; font-weight: bold;"><span style="text-decoration: underline;">Description</span></div>
                </td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top;" rowspan="1">&#160;</td>

    <td style="width: 91%; vertical-align: top;" rowspan="1">&#160;</td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div><a href="https://www.sec.gov/Archives/edgar/data/909724/000090972405000028/ex3-1.htm">3.1</a></div>
                </td>

    <td style="width: 91%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div style="text-align: justify;">Certificate of Incorporation of The Leather Factory, Inc., and Certificate of Amendment to Certificate of Incorporation of The Leather Factory, Inc. filed as Exhibit 3.1 to Tandy Leather Factory, Inc.&#8217;s
                    Quarterly Report on Form 10-Q filed with the Securities and Exchange Commission on August 12, 2005 and incorporated by reference herein. </div>
                </td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top;" rowspan="1">&#160;</td>

    <td style="width: 91%; vertical-align: top;" rowspan="1">&#160;</td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div><a href="https://www.sec.gov/Archives/edgar/data/909724/000114036121040868/brhc10031621_ex3-1.htm">3.2</a></div>
                </td>

    <td style="width: 91%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div>Bylaws of Tandy Leather Factory, Inc.,&#160;filed as Exhibit 3.1 to Tandy Leather Factory, Inc.&#8217;s Current Report on Form 8-K filed with the Securities and Exchange Commission on December 8, 2021 and incorporated by reference herein.</div>
                </td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top;" rowspan="1">&#160;</td>

    <td style="width: 91%; vertical-align: top;" rowspan="1">&#160;</td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div><a href="https://www.sec.gov/Archives/edgar/data/909724/000090972413000031/exh3-1.htm">3.3</a></div>
                </td>

    <td style="width: 91%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div style="text-align: justify;">Certificate of Designations of Series A Junior Participating Preferred Stock of Tandy Leather Factory, Inc. filed as Exhibit 3.1 to Tandy Leather Factory&#8217;s Inc.&#8217;s Current Report on Form 8-K filed with the
                    Securities and Exchange Commission on June 10, 2013 and incorporated by reference herein. </div>
                </td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top;" rowspan="1">&#160;</td>

    <td style="width: 91%; vertical-align: top;" rowspan="1">&#160;</td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top; background-color: rgb(204, 238, 255);" rowspan="1">
                  <div><a href="https://www.sec.gov/Archives/edgar/data/909724/000114036123024770/brhc20052855_ex3-4.htm">3.4</a></div>
                </td>

    <td style="width: 91%; vertical-align: top; background-color: rgb(204, 238, 255);" rowspan="1">
                  <div>Certificate of Amendment of Certificate of Incorporation, dated March 1, 2023.</div>
                </td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top;" rowspan="1">&#160;</td>

    <td style="width: 91%; vertical-align: top;" rowspan="1">&#160;</td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div><a href="https://www.sec.gov/Archives/edgar/data/909724/000114036121021870/brhc10025890_ex4-1.htm">4.1</a></div>
                </td>

    <td style="width: 91%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div>Description of Securities filed as Exhibit 4.1 to Tandy Leather Factory, Inc.&#8217;s Quarterly Report on Form 10-Q filed with the Securities and Exchange Commission on June 22, 2021 and incorporated by reference herein.</div>
                </td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top;">&#160;</td>

    <td style="width: 91%; vertical-align: top;"><br/>
                </td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div><a href="https://www.sec.gov/Archives/edgar/data/909724/000090972413000048/exhibit10-1.htm">10.1</a></div>
                </td>

    <td style="width: 91%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div style="text-align: justify;">Tandy Leather Factory, Inc. 2013 Restricted Stock Plan, filed as Exhibit 10.1 to Tandy Leather Factory&#8217;s Quarterly Report on Form 10-Q filed with the Securities and Exchange Commission on November 14,
                    2013 and incorporated by reference herein. </div>
                </td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top;" rowspan="1">&#160;</td>

    <td style="width: 91%; vertical-align: top;" rowspan="1">&#160;</td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div><a href="https://www.sec.gov/Archives/edgar/data/909724/000114036121021870/brhc10025890_ex10-5.htm">10.2</a></div>
                </td>

    <td style="width: 91%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div>Amendment #1 to Tandy Leather Factory, Inc. 2013 Restricted Stock Plan filed as Exhibit 10.5 to Tandy Leather Factory, Inc.&#8217;s Quarterly Report on Form 10-Q filed with the Securities and Exchange on June 22, 2021 and incorporated by
                    reference herein.</div>
                </td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top;" rowspan="1">&#160;</td>

    <td style="width: 91%; vertical-align: top;" rowspan="1">&#160;</td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div><a href="https://www.sec.gov/Archives/edgar/data/909724/000090972414000004/exhibit10-1.htm">10.3</a></div>
                </td>

    <td style="width: 91%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div style="text-align: justify;">Form of Non-Employee Director Restricted Stock Agreement under Tandy Leather Factory, Inc.&#8217;s 2013 Restricted Stock Plan, filed as Exhibit 10.1 to Tandy Leather Factory, Inc.&#8217;s Current Report on Form 8-K
                    filed with the Securities and Exchange Commission on February 14, 2014 and incorporated by reference herein. </div>
                </td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top;" rowspan="1">&#160;</td>

    <td style="width: 91%; vertical-align: top;" rowspan="1">&#160;</td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div><a href="https://www.sec.gov/Archives/edgar/data/909724/000114036121021870/brhc10025890_ex10-7.htm">10.4</a></div>
                </td>

    <td style="width: 91%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div style="text-align: justify;">Form of Employee Restricted Stock Award Agreement under Tandy Leather Factory, Inc.&#8217;s 2013 Restricted Stock Plan, filed as Exhibit 10.7 to Tandy Leather Factory, Inc.&#8217;s Quarterly Report on Form 10-Q filed
                    with the Securities and Exchange Commission on June 22, 2021 and incorporated by reference herein. </div>
                </td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top;" rowspan="1">&#160;</td>

    <td style="width: 91%; vertical-align: top;" rowspan="1">&#160;</td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div><a href="https://www.sec.gov/Archives/edgar/data/909724/000090972418000022/exhibit10-1.htm">10.5</a></div>
                </td>

    <td style="width: 91%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div>Form of Employment Agreement dated October 2, 2018 between the Company and Janet Carr, filed as Exhibit 10.1 to Tandy Leather Factory Inc.&#8217;s Current Report on Form 8-K filed with the Securities and Exchange Commission on October 5,
                    2018 and incorporated by reference herein.</div>
                </td>

  </tr>


</table>
          <div><br/>
          </div>

          <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
            <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">24</span></div>

            <div class="BRPFPageBreak" style="page-break-after: always;">
              <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: rgb(0, 0, 0); background-color: rgb(0, 0, 0);"/></div>

            <div style="width: 100%;" class="BRPFPageHeader">
              <div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 8pt; font-style: italic; font-variant: normal; text-transform: none;"><a href="#TABLEOFCONTENTS">Table of Contents</a></div>

            </div>

          </div>

          <div> <br/>
          </div>

          <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: rgb(0, 0, 0);">


  <tr>

    <td style="width: 9%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div><a href="https://www.sec.gov/Archives/edgar/data/909724/000090972418000022/exhibit10-2.htm">10.6</a></div>
                </td>

    <td style="width: 91%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div style="text-align: justify;">Form of Stand-Alone Restricted Stock Unit Agreement dated October 2, 2018 between the Company and Janet Carr, filed as Exhibit 10.2 to Tandy Leather Factor&#8217;s Current Report on Form 8-K filed with the
                    Securities and Exchange Commission on October 5, 2018 and incorporated by reference herein. </div>
                </td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top;" rowspan="1">&#160;</td>

    <td style="width: 91%; vertical-align: top;" rowspan="1">&#160;</td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div><a href="https://www.sec.gov/Archives/edgar/data/909724/000114036123039677/brhc20057333_ex10-10.htm">10.7</a></div>
                </td>

    <td style="width: 91%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div style="text-align: justify;">Tandy Leather Factory, Inc. 2023 Incentive Stock Plan, filed as Exhibit 10.10 to Tandy Leather Factory, Inc.&#8217;s Quarterly Report on Form 10-Q filed with the Securities and Exchange Commission on August 14,
                    2023</div>
                </td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top;" rowspan="1">&#160;</td>

    <td style="width: 91%; vertical-align: top;" rowspan="1">&#160;</td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div><a href="https://www.sec.gov/Archives/edgar/data/909724/000114036123052092/ef20012469_ex10-11.htm">10.8</a></div>
                </td>

    <td style="width: 91%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div style="text-align: justify; color: rgb(0, 0, 0);">Form of Restricted Stock Unit Agreement dated October 23, 2023 between the Company and Janet Carr, filed as Exhibit 10.11 to Tandy Leather Factory, Inc.&#8217;s Quarterly Report on Form
                    10-Q filed with the Securities and Exchange Commission on November 8, 2023</div>
                </td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top;">&#160;</td>

    <td style="width: 91%; vertical-align: top;"><br/>
                </td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div><a href="https://www.sec.gov/Archives/edgar/data/909724/000114036121021870/brhc10025890_ex14-1.htm">14.1</a></div>
                </td>

    <td style="width: 91%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div>Code of Business Conduct and Ethics of Tandy Leather Factory, Inc., adopted by the Board of Directors in May, 2021, filed as Exhibit 14.1 to Tandy Leather Factory, Inc.&#8217;s Quarterly Report on Form 10-Q filed with the Securities and
                    Exchange Commission on June 22, 2021 and incorporated by reference herein.</div>
                </td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top;" rowspan="1">&#160;</td>

    <td style="width: 91%; vertical-align: top;" rowspan="1">&#160;</td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div><a href="https://www.sec.gov/Archives/edgar/data/909724/000114036124014799/ef20015300_ex21-1.htm">21.1</a></div>
                </td>

    <td style="width: 91%; vertical-align: top; background-color: rgb(204, 238, 255);">Subsidiaries of Tandy Leather Factory, Inc., filed as Exhibit 21.1 to Tandy Leather Factory, Inc.&#8217;s Annual Report on Form 10-K filed with the Securities and
                  Exchange Commission on March 22, 2024 and incorporated by reference herein.<br/>
                </td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top;" rowspan="1">&#160;</td>

    <td style="width: 91%; vertical-align: top;" rowspan="1">&#160;</td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div><a href="ef20026315_ex31-1.htm">*31.1</a></div>
                </td>

    <td style="width: 91%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div style="text-align: justify;">13a-14(a) or 15d-14(a) Certification by the Chief Executive Officer pursuant to Rule 13a-14(a) or 15d-14(a) under the Securities Exchange Act of 1934, as amended.</div>
                </td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top;" rowspan="1">&#160;</td>

    <td style="width: 91%; vertical-align: top;" rowspan="1">&#160;</td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div><a href="ef20026315_ex32-1.htm">*32.1</a></div>
                </td>

    <td style="width: 91%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div style="text-align: justify;">Certification Pursuant to 18 U.S.C. Section 1350, as Adopted Pursuant to Section 906 of the Sarbanes-Oxley Act of 2022.</div>
                </td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top;" rowspan="1">&#160;</td>

    <td style="width: 91%; vertical-align: top;" rowspan="1">&#160;</td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div>*101.INS</div>
                </td>

    <td style="width: 91%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div style="text-align: justify; margin-right: 10.8pt;">XBRL Instance Document.</div>
                </td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top;" rowspan="1">&#160;</td>

    <td style="width: 91%; vertical-align: top;" rowspan="1">&#160;</td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div>*101.SCH</div>
                </td>

    <td style="width: 91%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div style="text-align: justify; margin-right: 10.8pt;">XBRL Taxonomy Extension Schema Document.</div>
                </td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top;" rowspan="1">&#160;</td>

    <td style="width: 91%; vertical-align: top;" rowspan="1">&#160;</td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div>*101.CAL</div>
                </td>

    <td style="width: 91%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div style="text-align: justify; margin-right: 10.8pt;">XBRL Taxonomy Extension Calculation Document.</div>
                </td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top;" rowspan="1">&#160;</td>

    <td style="width: 91%; vertical-align: top;" rowspan="1">&#160;</td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div>*101.DEF</div>
                </td>

    <td style="width: 91%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div style="text-align: justify; margin-right: 10.8pt;">XBRL Taxonomy Extension Definition Document.</div>
                </td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top;" rowspan="1">&#160;</td>

    <td style="width: 91%; vertical-align: top;" rowspan="1">&#160;</td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div>*101.LAB</div>
                </td>

    <td style="width: 91%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div style="text-align: justify; margin-right: 10.8pt;">XBRL Taxonomy Extension Labels Document.</div>
                </td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top;" rowspan="1">&#160;</td>

    <td style="width: 91%; vertical-align: top;" rowspan="1">&#160;</td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div>*101.PRE</div>
                </td>

    <td style="width: 91%; vertical-align: top; background-color: rgb(204, 238, 255);">
                  <div style="text-align: justify; margin-right: 10.8pt;">XBRL Taxonomy Extension Presentation Document.</div>
                </td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top;" rowspan="1">&#160;</td>

    <td style="width: 91%; vertical-align: top;" rowspan="1">&#160;</td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top; background-color: rgb(204, 238, 255);" rowspan="1">*104<br/>
                </td>

    <td style="width: 91%; vertical-align: top; background-color: rgb(204, 238, 255);" rowspan="1">&#160;<span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(204, 238, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">Cover Page Interactive Data File (formatted as Inline
                    XBRL and contained in Exhibit 101).</span></td>

  </tr>

  <tr>

    <td style="width: 9%; vertical-align: top;" rowspan="1" colspan="2">
                  <hr style="border-width: medium; border-style: none; border-color: -moz-use-text-color; margin: 0px;"/></td>

  </tr>


</table>
          <div>
            <div>
              <hr style="height: 2px; width: 10%; color: rgb(0, 0, 0); background-color: rgb(0, 0, 0); border: medium none; margin-left: 0px; margin-right: auto;"/></div>

            <div>*Filed herewith.</div>

          </div>

        </div>

        <div> <br/>
        </div>

        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">25</span></div>

          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0px; height: 2px; color: rgb(0, 0, 0); background-color: rgb(0, 0, 0); clear: both;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 8pt; font-style: italic; font-variant: normal; text-transform: none;"><a href="#TABLEOFCONTENTS">Table of Contents</a></div>

          </div>

        </div>

        <div style="font-weight: bold;"><a id="SIGNATURES"><!--Anchor--></a>SIGNATURES</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">Pursuant to the requirements of the Securities and Exchange Act of 1934, the registrant has duly caused this report to be signed on its behalf by the undersigned thereunto duly authorized.</div>

        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" border="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: rgb(0, 0, 0);">


  <tr>

    <td style="width: 50%; vertical-align: top;">&#160;</td>

    <td style="width: 50%; vertical-align: top;">
                <div style="text-align: justify; font-weight: bold;">TANDY LEATHER FACTORY, INC.</div>
              </td>

  </tr>

  <tr>

    <td style="width: 50%; vertical-align: top;">&#160;</td>

    <td style="width: 50%; vertical-align: top;">
                <div style="text-align: justify;">(Registrant)</div>
              </td>

  </tr>

  <tr>

    <td style="width: 50%; vertical-align: top;">&#160;</td>

    <td style="width: 50%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 50%; vertical-align: top;">
                <div style="text-align: justify;">Date:&#160; May 10, 2024</div>
              </td>

    <td style="width: 50%; vertical-align: top;">
                <div style="text-align: justify;">By: <span style="text-decoration: underline;"> /s/ Janet Carr</span></div>
              </td>

  </tr>

  <tr>

    <td style="width: 50%; vertical-align: top;">&#160;</td>

    <td style="width: 50%; vertical-align: top;">
                <div style="text-align: justify; font-weight: bold;">Janet Carr</div>
              </td>

  </tr>

  <tr>

    <td style="width: 50%; vertical-align: top;">&#160;</td>

    <td style="width: 50%; vertical-align: top;">
                <div style="text-align: justify; font-weight: bold;">Chief Executive Officer</div>
              </td>

  </tr>


</table>
        <div><br/>
          <br/>
        </div>

        <div style="text-align: center;"> <span style="font-family: 'Times New Roman'; font-size: 8pt; color: rgb(0, 0, 0); font-weight: normal; font-style: normal;">26</span> </div>

        <hr style="height: 2px; color: rgb(0, 0, 0); background-color: rgb(0, 0, 0); text-align: center; border: medium none; margin-left: auto; margin-right: auto;"/></div>

    </div>

  </div>


</body>
</html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.1
<SEQUENCE>2
<FILENAME>ef20026315_ex31-1.htm
<DESCRIPTION>EXHIBIT 31.1
<TEXT>
<html>
  <head>
    <title></title>
    <!-- Licensed to: Broadridge
         Document created using Broadridge PROfile 24.3.1.5224
         Copyright 1995 - 2024 Broadridge -->
  </head>
<body bgcolor="#ffffff" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000;">
  <div>
    <hr noshade="noshade" align="center" style="height: 4px; color: #000000; background-color: #000000; text-align: center; margin-left: auto; margin-right: auto; border: none;">
    <div>
      <div style="font-weight: bold;">EXHIBIT 31.1</div>
      <div style="text-align: center; font-weight: bold;">RULE 13a-14(a) CERTIFICATION</div>
      <div style="text-align: justify;">I, <font style="font-weight: bold;">Janet Carr</font>, certify that:&#160; </div>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable">

          <tr>
            <td style="width: 13.5pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top;">1.</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>I have reviewed this quarterly report on Form 10-Q of Tandy Leather Factory, Inc.; Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the
                statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report; </div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable">

          <tr>
            <td style="width: 13.5pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top;">2.</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and
                for, the periods presented in this report; </div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable">

          <tr>
            <td style="width: 13.5pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top;">3.</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>The registrant&#8217;s other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial
                reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:&#160; </div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable">

          <tr>
            <td style="width: 40.5pt;"><br>
            </td>
            <td style="width: 22.5pt; vertical-align: top;">a.</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated
                subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared; </div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable">

          <tr>
            <td style="width: 40.5pt;"><br>
            </td>
            <td style="width: 22.5pt; vertical-align: top;">b.</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and
                the preparation of financial statements for external purposes in accordance with generally accepted accounting principles; </div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable">

          <tr>
            <td style="width: 40.5pt;"><br>
            </td>
            <td style="width: 22.5pt; vertical-align: top;">c.</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>Evaluated the effectiveness of the registrant&#8217;s disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by
                this report based on such evaluation; and </div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable">

          <tr>
            <td style="width: 40.5pt;"><br>
            </td>
            <td style="width: 22.5pt; vertical-align: top;">d.</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>Disclosed in this report any change in the registrant&#8217;s internal control over financial reporting that occurred during the registrant&#8217;s first fiscal quarter that has materially affected, or is reasonably likely to materially affect, the
                registrant&#8217;s internal control over financial reporting; and </div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable">

          <tr>
            <td style="width: 13.5pt;"><br>
            </td>
            <td style="width: 22.5pt; vertical-align: top;">4.</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>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 persons performing the equivalent functions): </div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable">

          <tr>
            <td style="width: 40.5pt;"><br>
            </td>
            <td style="width: 22.5pt; vertical-align: top;">a.</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>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 </div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable">

          <tr>
            <td style="width: 40.5pt;"><br>
            </td>
            <td style="width: 22.5pt; vertical-align: top;">b.</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant&#8217;s internal controls over financial reporting.&#160; </div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" border="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: rgb(0, 0, 0);">

          <tr>
            <td style="width: 50%; vertical-align: top;">
              <div style="text-align: justify;">Date: May 10, 2024</div>
            </td>
            <td colspan="2" style="vertical-align: top;">
              <div style="text-align: justify;">By:&#160; <u>/s/ Janet Carr</u></div>
            </td>
          </tr>
          <tr>
            <td style="width: 50%; vertical-align: top;">&#160;</td>
            <td style="width: 3%; vertical-align: top;">&#160;</td>
            <td style="width: 47%; vertical-align: top;">
              <div style="text-align: justify; font-weight: bold;">Janet Carr</div>
            </td>
          </tr>
          <tr>
            <td style="width: 50%; vertical-align: top;">&#160;</td>
            <td style="width: 3%; vertical-align: top;">&#160;</td>
            <td style="width: 47%; vertical-align: top;">
              <div style="text-align: justify; font-weight: bold;">Chief Executive Officer</div>
            </td>
          </tr>
          <tr>
            <td style="width: 50%; vertical-align: top;">&#160;</td>
            <td style="width: 3%; vertical-align: top;">&#160;</td>
            <td style="width: 47%; vertical-align: top;">
              <div style="text-align: justify;">(Principal Executive Officer and Principal Financial Officer)</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div> <br>
      </div>
      <div>
        <hr noshade="noshade" align="center" style="height: 2px; color: #000000; background-color: #000000; text-align: center; margin-left: auto; margin-right: auto; border: none;"> </div>
    </div>
  </div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.1
<SEQUENCE>3
<FILENAME>ef20026315_ex32-1.htm
<DESCRIPTION>EXHIBIT 32.1
<TEXT>
<html>
  <head>
    <title></title>
    <!-- Licensed to: Broadridge
         Document created using Broadridge PROfile 24.3.1.5224
         Copyright 1995 - 2024 Broadridge -->
  </head>
<body bgcolor="#ffffff" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000;">
  <div>
    <hr noshade="noshade" align="center" style="height: 4px; color: #000000; background-color: #000000; text-align: center; margin-left: auto; margin-right: auto; border: none;"><font style="font-weight: bold;">EXHIBIT 32.1</font>
    <div>
      <div><br>
      </div>
      <div style="text-align: center; font-weight: bold;">Certification Pursuant to 18 U.S.C. Section 1350,</div>
      <div style="text-align: center; font-weight: bold;">as Adopted Pursuant to Section 906 of the Sarbanes-Oxley Act of 2002</div>
      <div><br>
      </div>
      <div style="text-align: justify;">In connection with the Quarterly Report on Form 10-Q of Tandy Leather Factory, Inc. (the &#8220;Company&#8221;) for the quarter ended March 31, 2024 as filed with the United States Securities and Exchange Commission on the date
        hereof (the &#8220;Report&#8221;), each of the undersigned officers of the Company hereby certifies, pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, that:</div>
      <div><br>
      </div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top;">i.</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>The Report fully complies with the requirements of Section 13(a) or 15(d) of the Securities Exchange Act of 1934; and</div>
            </td>
          </tr>

      </table>
      <div><br>
      </div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top;">ii.</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>The information contained in the Report fully presents, in all material respects, the financial condition and results of operations of the Company as of the dates and for the periods expressed in the Report.</div>
            </td>
          </tr>

      </table>
      <div><br>
      </div>
      <table cellspacing="0" cellpadding="0" border="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: rgb(0, 0, 0);">

          <tr>
            <td style="width: 49.95%; vertical-align: top;">
              <div style="text-align: justify;">Date: May 10, 2024</div>
            </td>
            <td colspan="1" style="width: 49.95%; vertical-align: top;">
              <div style="text-align: justify;">By: <u> /s/ Janet Carr</u></div>
            </td>
          </tr>
          <tr>
            <td style="width: 49.95%; vertical-align: top;">&#160;</td>
            <td colspan="1" style="width: 49.95%; vertical-align: top;">
              <div style="text-align: justify; font-weight: bold;">Janet Carr</div>
            </td>
          </tr>
          <tr>
            <td style="width: 49.95%; vertical-align: top;">&#160;</td>
            <td colspan="1" style="width: 49.95%; vertical-align: top;">
              <div style="text-align: justify; font-weight: bold;">Chief Executive Officer</div>
            </td>
          </tr>
          <tr>
            <td style="width: 49.95%; vertical-align: top;">&#160;</td>
            <td colspan="1" style="width: 49.95%; vertical-align: top;">
              <div style="text-align: justify;">(Principal Executive Officer and Principal Financial Officer)</div>
            </td>
          </tr>

      </table>
      <div><br>
      </div>
      <div><br>
      </div>
      <div>
        <hr noshade="noshade" align="center" style="height: 2px; color: #000000; background-color: #000000; text-align: center; margin-left: auto; margin-right: auto; border: none;"></div>
    </div>
  </div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>4
<FILENAME>tlfa-20240331.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii"?>
<!--Generated by Broadridge PROfile 24.3.1.5224 Broadridge-->
<xs:schema targetNamespace="http://tandyleather.com/20240331" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tlfa="http://tandyleather.com/20240331" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:dei="http://xbrl.sec.gov/dei/2023" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2022-03-31" xmlns:us-types="http://fasb.org/us-types/2023" xmlns:srt-types="http://fasb.org/srt-types/2023">
  <xs:annotation>
    <xs:appinfo>
      <link:linkbaseRef xlink:type="simple" xlink:href="tlfa-20240331_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="tlfa-20240331_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="tlfa-20240331_def.xml" xlink:role="http://www.xbrl.org/2003/role/definitionLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
      <link:linkbaseRef xlink:type="simple" xlink:href="tlfa-20240331_lab.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
      <link:roleType roleURI="http://tandyleather.com/role/DocumentAndEntityInformation" id="DocumentAndEntityInformation">
        <link:definition>000100 - Document - Document and Entity Information</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tandyleather.com/role/CondensedConsolidatedBalanceSheets" id="CondensedConsolidatedBalanceSheets">
        <link:definition>010000 - 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://tandyleather.com/role/CondensedConsolidatedBalanceSheetsParenthetical" id="CondensedConsolidatedBalanceSheetsParenthetical">
        <!--Parent Role: Condensed Consolidated Balance Sheets-->
        <link:definition>010100 - Statement - Condensed Consolidated Balance Sheets (Parenthetical)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome" id="CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome">
        <link:definition>020000 - Statement - Condensed Consolidated Statements of Operations and Comprehensive Income</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows" id="CondensedConsolidatedStatementsOfCashFlows">
        <link:definition>030000 - Statement - Condensed Consolidated Statements of Cash Flows</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tandyleather.com/role/CondensedConsolidatedStatementsOfStockholdersEquity" id="CondensedConsolidatedStatementsOfStockholdersEquity">
        <link:definition>040000 - Statement - Condensed Consolidated Statements of Stockholders' Equity</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPolicies" id="BasisOfPresentationAndCertainSignificantAccountingPolicies">
        <link:definition>060100 - Disclosure - BASIS OF PRESENTATION AND CERTAIN 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://tandyleather.com/role/NotesPayableAndLongtermDebt" id="NotesPayableAndLongtermDebt">
        <link:definition>060200 - Disclosure - NOTES PAYABLE AND 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://tandyleather.com/role/IncomeTax" id="IncomeTax">
        <link:definition>060300 - Disclosure - INCOME TAX</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tandyleather.com/role/StockbasedCompensation" id="StockbasedCompensation">
        <link:definition>060400 - Disclosure - STOCK-BASED COMPENSATION</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tandyleather.com/role/EarningsPerShare" id="EarningsPerShare">
        <link:definition>060500 - 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://tandyleather.com/role/CommitmentsAndContingencies" id="CommitmentsAndContingencies">
        <link:definition>060600 - Disclosure - COMMITMENTS AND CONTINGENCIES</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tandyleather.com/role/ShareRepurchaseProgramAndShareRepurchases" id="ShareRepurchaseProgramAndShareRepurchases">
        <link:definition>060700 - Disclosure - SHARE REPURCHASE PROGRAM AND SHARE REPURCHASES</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPolicies" id="BasisOfPresentationAndCertainSignificantAccountingPoliciesPolicies">
        <!--Parent Role: BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES-->
        <link:definition>070100 - Disclosure - BASIS OF PRESENTATION AND CERTAIN 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://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesTables" id="BasisOfPresentationAndCertainSignificantAccountingPoliciesTables">
        <!--Parent Role: BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES-->
        <link:definition>080100 - Disclosure - BASIS OF PRESENTATION AND CERTAIN 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://tandyleather.com/role/StockbasedCompensationTables" id="StockbasedCompensationTables">
        <!--Parent Role: STOCK-BASED COMPENSATION-->
        <link:definition>080400 - Disclosure - STOCK-BASED COMPENSATION (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tandyleather.com/role/EarningsPerShareTables" id="EarningsPerShareTables">
        <!--Parent Role: EARNINGS PER SHARE-->
        <link:definition>080500 - 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://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesBasisOfPresentationDetails" id="BasisOfPresentationAndCertainSignificantAccountingPoliciesBasisOfPresentationDetails">
        <!--Parent Role: BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES-->
        <link:definition>090100 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Basis of Presentation (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://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails" id="BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails">
        <!--Parent Role: BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES-->
        <link:definition>090102 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Revenue Recognition and Discounts (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://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesDiscountsDetails" id="BasisOfPresentationAndCertainSignificantAccountingPoliciesDiscountsDetails">
        <!--Parent Role: BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES-->
        <link:definition>090104 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Discounts (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://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPropertyAndEquipmentNetOfAccumulatedDepreciationDetails" id="BasisOfPresentationAndCertainSignificantAccountingPoliciesPropertyAndEquipmentNetOfAccumulatedDepreciationDetails">
        <!--Parent Role: BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES-->
        <link:definition>090106 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Property and Equipment, Net of Accumulated Depreciation (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://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesInventoryDetails" id="BasisOfPresentationAndCertainSignificantAccountingPoliciesInventoryDetails">
        <!--Parent Role: BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES-->
        <link:definition>090108 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Inventory (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://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesFairValueOfFinancialInstrumentsDetails" id="BasisOfPresentationAndCertainSignificantAccountingPoliciesFairValueOfFinancialInstrumentsDetails">
        <!--Parent Role: BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES-->
        <link:definition>090110 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Fair Value of Financial Instruments (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://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesAccountsReceivableAndExpectedCreditLossesDetails" id="BasisOfPresentationAndCertainSignificantAccountingPoliciesAccountsReceivableAndExpectedCreditLossesDetails">
        <!--Parent Role: BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES-->
        <link:definition>090112 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Accounts Receivable and Expected Credit Losses (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://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesOtherIntangibleAssetsDetails" id="BasisOfPresentationAndCertainSignificantAccountingPoliciesOtherIntangibleAssetsDetails">
        <!--Parent Role: BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES-->
        <link:definition>090114 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Other Intangible Assets (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tandyleather.com/role/NotesPayableAndLongtermDebtDetails" id="NotesPayableAndLongtermDebtDetails">
        <!--Parent Role: NOTES PAYABLE AND LONG-TERM DEBT-->
        <link:definition>090200 - Disclosure - NOTES PAYABLE AND LONG-TERM DEBT (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://tandyleather.com/role/IncomeTaxDetails" id="IncomeTaxDetails">
        <!--Parent Role: INCOME TAX-->
        <link:definition>090300 - Disclosure - INCOME TAX (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://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails" id="StockbasedCompensation2013And2023RestrictedStockPlansDetails">
        <!--Parent Role: STOCK-BASED COMPENSATION-->
        <link:definition>090400 - Disclosure - STOCK-BASED COMPENSATION, 2013 and 2023 Restricted Stock Plans (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tandyleather.com/role/StockbasedCompensationSummaryOfActivityForNonvestedRestrictedStockUnitAwardsDetails" id="StockbasedCompensationSummaryOfActivityForNonvestedRestrictedStockUnitAwardsDetails">
        <!--Parent Role: STOCK-BASED COMPENSATION-->
        <link:definition>090402 - Disclosure - STOCK-BASED COMPENSATION, Summary of Activity for Non-vested Restricted Stock Unit Awards (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://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails" id="StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails">
        <!--Parent Role: STOCK-BASED COMPENSATION-->
        <link:definition>090404 - Disclosure - STOCK-BASED COMPENSATION, Non-vested Service-based Restricted Stock Unit Awards (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://tandyleather.com/role/EarningsPerShareDetails" id="EarningsPerShareDetails">
        <!--Parent Role: EARNINGS PER SHARE-->
        <link:definition>090500 - 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://tandyleather.com/role/ShareRepurchaseProgramAndShareRepurchasesDetails" id="ShareRepurchaseProgramAndShareRepurchasesDetails">
        <!--Parent Role: SHARE REPURCHASE PROGRAM AND SHARE REPURCHASES-->
        <link:definition>090700 - Disclosure - SHARE REPURCHASE PROGRAM AND SHARE REPURCHASES (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
    </xs:appinfo>
  </xs:annotation>
  <xs:import namespace="http://fasb.org/us-gaap/2023" schemaLocation="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd" />
  <xs:import namespace="http://xbrl.sec.gov/dei/2023" schemaLocation="https://xbrl.sec.gov/dei/2023/dei-2023.xsd" />
  <xs:import namespace="http://xbrl.sec.gov/country/2023" schemaLocation="https://xbrl.sec.gov/country/2023/country-2023.xsd" />
  <xs:import namespace="http://xbrl.sec.gov/currency/2023" schemaLocation="https://xbrl.sec.gov/currency/2023/currency-2023.xsd" />
  <xs:import namespace="http://xbrl.sec.gov/exch/2023" schemaLocation="https://xbrl.sec.gov/exch/2023/exch-2023.xsd" />
  <xs:import namespace="http://xbrl.sec.gov/naics/2023" schemaLocation="https://xbrl.sec.gov/naics/2023/naics-2023.xsd" />
  <xs:import namespace="http://xbrl.sec.gov/sic/2023" schemaLocation="https://xbrl.sec.gov/sic/2023/sic-2023.xsd" />
  <xs:import namespace="http://www.xbrl.org/2009/role/negated" schemaLocation="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd" />
  <xs:import namespace="http://www.xbrl.org/2009/role/net" schemaLocation="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd" />
  <xs:import namespace="http://xbrl.sec.gov/stpr/2023" schemaLocation="https://xbrl.sec.gov/stpr/2023/stpr-2023.xsd" />
  <xs:import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd" />
  <xs:import namespace="http://www.xbrl.org/2004/ref" schemaLocation="http://www.xbrl.org/2004/ref-2004-08-10.xsd" />
  <xs:import namespace="http://xbrl.org/2005/xbrldt" schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd" />
  <xs:import namespace="http://fasb.org/us-types/2023" schemaLocation="https://xbrl.fasb.org/us-gaap/2023/elts/us-types-2023.xsd" />
  <xs:import namespace="http://www.xbrl.org/2009/arcrole/fact-explanatoryFact" schemaLocation="http://www.xbrl.org/lrr/arcrole/factExplanatory-2009-12-16.xsd" />
  <xs:import namespace="http://fasb.org/srt/2023" schemaLocation="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd" />
  <xs:import namespace="http://fasb.org/srt-types/2023" schemaLocation="https://xbrl.fasb.org/srt/2023/elts/srt-types-2023.xsd" />
  <xs:import namespace="http://www.xbrl.org/dtr/type/2022-03-31" schemaLocation="https://www.xbrl.org/dtr/type/2022-03-31/types.xsd" />
  <xs:import namespace="http://xbrl.sec.gov/ecd/2023" schemaLocation="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd" />
  <xs:element name="FairValueOfFinancialInstrumentsAbstract" id="tlfa_FairValueOfFinancialInstrumentsAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="BusinessDescriptionAbstract" id="tlfa_BusinessDescriptionAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="JPMorganChaseBankNAMember" id="tlfa_JPMorganChaseBankNAMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="RevenueRecognitionDiscountsPolicyTextBlock" id="tlfa_RevenueRecognitionDiscountsPolicyTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="AllOtherCountriesMember" id="tlfa_AllOtherCountriesMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="OtherCountriesMember" id="tlfa_OtherCountriesMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="InventoryMerchandiseExpectedToBeReturned" id="tlfa_InventoryMerchandiseExpectedToBeReturned" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="instant" xbrli:balance="debit" />
  <xs:element name="GiftCardRedemptionPeriod" id="tlfa_GiftCardRedemptionPeriod" type="xbrli:durationItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="SHAREREPURCHASEPROGRAMANDSHAREREPURCHASESAbstract" id="tlfa_SHAREREPURCHASEPROGRAMANDSHAREREPURCHASESAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="ShareRepurchaseProgramAndShareRepurchasesTextBlock" id="tlfa_ShareRepurchaseProgramAndShareRepurchasesTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="StockRepurchaseProgramAbstract" id="tlfa_StockRepurchaseProgramAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="RestrictedStockAndRestrictedStockUnitsMember" id="tlfa_RestrictedStockAndRestrictedStockUnitsMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="DiscountsAbstract" id="tlfa_DiscountsAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="NumberOfClassesOfCustomerDiscounts" id="tlfa_NumberOfClassesOfCustomerDiscounts" type="xbrli:integerItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" id="tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="instant" xbrli:balance="debit" />
  <xs:element name="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" id="tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="instant" xbrli:balance="debit" />
  <xs:element name="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" id="tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="instant" xbrli:balance="debit" />
  <xs:element name="ServicedBasedRestrictedStockUnitsRSUsMember" id="tlfa_ServicedBasedRestrictedStockUnitsRSUsMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" id="tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="instant" xbrli:balance="debit" />
  <xs:element name="PerformanceBasedRestrictedStockUnitsRSUsMember" id="tlfa_PerformanceBasedRestrictedStockUnitsRSUsMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="TwoThousandAndTwentyThreeRestrictedStockPlanMember" id="tlfa_TwoThousandAndTwentyThreeRestrictedStockPlanMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="TwoThousandAndThirteenRestrictedStockPlanMember" id="tlfa_TwoThousandAndThirteenRestrictedStockPlanMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="AccountsReceivableAndExpectedCreditLossesAbstract" id="tlfa_AccountsReceivableAndExpectedCreditLossesAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
</xs:schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.CAL
<SEQUENCE>5
<FILENAME>tlfa-20240331_cal.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION CALCULATION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii"?>
<!--Generated by Broadridge PROfile 24.3.1.5224 Broadridge-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrli="http://www.xbrl.org/2003/instance">
  <link:roleRef roleURI="http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesInventoryDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#BasisOfPresentationAndCertainSignificantAccountingPoliciesInventoryDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows" xlink:type="simple" xlink:href="tlfa-20240331.xsd#CondensedConsolidatedStatementsOfCashFlows" />
  <link:roleRef roleURI="http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome" xlink:type="simple" xlink:href="tlfa-20240331.xsd#CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome" />
  <link:roleRef roleURI="http://tandyleather.com/role/CondensedConsolidatedBalanceSheets" xlink:type="simple" xlink:href="tlfa-20240331.xsd#CondensedConsolidatedBalanceSheets" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/CondensedConsolidatedBalanceSheets">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="LiabilitiesAndStockholdersEquity" xlink:title="LiabilitiesAndStockholdersEquity" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity" xlink:label="StockholdersEquity" xlink:title="StockholdersEquity" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TreasuryStockCommonValue" xlink:label="TreasuryStockCommonValue" xlink:title="TreasuryStockCommonValue" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="StockholdersEquity" xlink:to="TreasuryStockCommonValue" xlink:title="calculation: StockholdersEquity to TreasuryStockCommonValue" order="4.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockValue" xlink:label="CommonStockValue" xlink:title="CommonStockValue" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="StockholdersEquity" xlink:to="CommonStockValue" xlink:title="calculation: StockholdersEquity to CommonStockValue" order="5.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="RetainedEarningsAccumulatedDeficit" xlink:title="RetainedEarningsAccumulatedDeficit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="StockholdersEquity" xlink:to="RetainedEarningsAccumulatedDeficit" xlink:title="calculation: StockholdersEquity to RetainedEarningsAccumulatedDeficit" order="3.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="AdditionalPaidInCapital" xlink:title="AdditionalPaidInCapital" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="StockholdersEquity" xlink:to="AdditionalPaidInCapital" xlink:title="calculation: StockholdersEquity to AdditionalPaidInCapital" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:title="AccumulatedOtherComprehensiveIncomeLossNetOfTax" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="StockholdersEquity" xlink:to="AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:title="calculation: StockholdersEquity to AccumulatedOtherComprehensiveIncomeLossNetOfTax" order="6.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LiabilitiesAndStockholdersEquity" xlink:to="StockholdersEquity" xlink:title="calculation: LiabilitiesAndStockholdersEquity to StockholdersEquity" order="11.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesCurrent" xlink:label="LiabilitiesCurrent" xlink:title="LiabilitiesCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TaxesPayableCurrent" xlink:label="TaxesPayableCurrent" xlink:title="TaxesPayableCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LiabilitiesCurrent" xlink:to="TaxesPayableCurrent" xlink:title="calculation: LiabilitiesCurrent to TaxesPayableCurrent" order="7.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableTradeCurrent" xlink:label="AccountsPayableTradeCurrent" xlink:title="AccountsPayableTradeCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LiabilitiesCurrent" xlink:to="AccountsPayableTradeCurrent" xlink:title="calculation: LiabilitiesCurrent to AccountsPayableTradeCurrent" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:label="AccruedLiabilitiesAndOtherLiabilities" xlink:title="AccruedLiabilitiesAndOtherLiabilities" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LiabilitiesCurrent" xlink:to="AccruedLiabilitiesAndOtherLiabilities" xlink:title="calculation: LiabilitiesCurrent to AccruedLiabilitiesAndOtherLiabilities" order="3.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="OperatingLeaseLiabilityCurrent" xlink:title="OperatingLeaseLiabilityCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LiabilitiesCurrent" xlink:to="OperatingLeaseLiabilityCurrent" xlink:title="calculation: LiabilitiesCurrent to OperatingLeaseLiabilityCurrent" order="5.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LiabilitiesAndStockholdersEquity" xlink:to="LiabilitiesCurrent" xlink:title="calculation: LiabilitiesAndStockholdersEquity to LiabilitiesCurrent" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="OperatingLeaseLiabilityNoncurrent" xlink:title="OperatingLeaseLiabilityNoncurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LiabilitiesAndStockholdersEquity" xlink:to="OperatingLeaseLiabilityNoncurrent" xlink:title="calculation: LiabilitiesAndStockholdersEquity to OperatingLeaseLiabilityNoncurrent" order="8.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:label="LiabilityForUncertainTaxPositionsNoncurrent" xlink:title="LiabilityForUncertainTaxPositionsNoncurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LiabilitiesAndStockholdersEquity" xlink:to="LiabilityForUncertainTaxPositionsNoncurrent" xlink:title="calculation: LiabilitiesAndStockholdersEquity to LiabilityForUncertainTaxPositionsNoncurrent" order="6.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="OtherLiabilitiesNoncurrent" xlink:title="OtherLiabilitiesNoncurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LiabilitiesAndStockholdersEquity" xlink:to="OtherLiabilitiesNoncurrent" xlink:title="calculation: LiabilitiesAndStockholdersEquity to OtherLiabilitiesNoncurrent" order="4.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinanceLeaseLiabilityNoncurrent" xlink:label="FinanceLeaseLiabilityNoncurrent" xlink:title="FinanceLeaseLiabilityNoncurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LiabilitiesAndStockholdersEquity" xlink:to="FinanceLeaseLiabilityNoncurrent" xlink:title="calculation: LiabilitiesAndStockholdersEquity to FinanceLeaseLiabilityNoncurrent" order="7.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="DeferredIncomeTaxLiabilitiesNet" xlink:title="DeferredIncomeTaxLiabilitiesNet" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LiabilitiesAndStockholdersEquity" xlink:to="DeferredIncomeTaxLiabilitiesNet" xlink:title="calculation: LiabilitiesAndStockholdersEquity to DeferredIncomeTaxLiabilitiesNet" order="5.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Assets" xlink:label="Assets" xlink:title="Assets" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinanceLeaseRightOfUseAsset" xlink:label="FinanceLeaseRightOfUseAsset" xlink:title="FinanceLeaseRightOfUseAsset" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="Assets" xlink:to="FinanceLeaseRightOfUseAsset" xlink:title="calculation: Assets to FinanceLeaseRightOfUseAsset" order="7.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrent" xlink:label="AssetsCurrent" xlink:title="AssetsCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="PrepaidExpenseCurrent" xlink:title="PrepaidExpenseCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AssetsCurrent" xlink:to="PrepaidExpenseCurrent" xlink:title="calculation: AssetsCurrent to PrepaidExpenseCurrent" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="AccountsReceivableNetCurrent" xlink:title="AccountsReceivableNetCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AssetsCurrent" xlink:to="AccountsReceivableNetCurrent" xlink:title="calculation: AssetsCurrent to AccountsReceivableNetCurrent" order="7.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="CashAndCashEquivalentsAtCarryingValue" xlink:title="CashAndCashEquivalentsAtCarryingValue" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AssetsCurrent" xlink:to="CashAndCashEquivalentsAtCarryingValue" xlink:title="calculation: AssetsCurrent to CashAndCashEquivalentsAtCarryingValue" order="5.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNet" xlink:label="InventoryNet" xlink:title="InventoryNet" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AssetsCurrent" xlink:to="InventoryNet" xlink:title="calculation: AssetsCurrent to InventoryNet" order="8.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxesReceivable" xlink:label="IncomeTaxesReceivable" xlink:title="IncomeTaxesReceivable" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AssetsCurrent" xlink:to="IncomeTaxesReceivable" xlink:title="calculation: AssetsCurrent to IncomeTaxesReceivable" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAssetsCurrent" xlink:label="OtherAssetsCurrent" xlink:title="OtherAssetsCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AssetsCurrent" xlink:to="OtherAssetsCurrent" xlink:title="calculation: AssetsCurrent to OtherAssetsCurrent" order="4.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="Assets" xlink:to="AssetsCurrent" xlink:title="calculation: Assets to AssetsCurrent" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="PropertyPlantAndEquipmentNet" xlink:title="PropertyPlantAndEquipmentNet" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:title="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="PropertyPlantAndEquipmentNet" xlink:to="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:title="calculation: PropertyPlantAndEquipmentNet to AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" order="2.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="PropertyPlantAndEquipmentGross" xlink:title="PropertyPlantAndEquipmentGross" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="PropertyPlantAndEquipmentNet" xlink:to="PropertyPlantAndEquipmentGross" xlink:title="calculation: PropertyPlantAndEquipmentNet to PropertyPlantAndEquipmentGross" order="1.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="Assets" xlink:to="PropertyPlantAndEquipmentNet" xlink:title="calculation: Assets to PropertyPlantAndEquipmentNet" order="6.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="OperatingLeaseRightOfUseAsset" xlink:title="OperatingLeaseRightOfUseAsset" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="Assets" xlink:to="OperatingLeaseRightOfUseAsset" xlink:title="calculation: Assets to OperatingLeaseRightOfUseAsset" order="8.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="DeferredIncomeTaxAssetsNet" xlink:title="DeferredIncomeTaxAssetsNet" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="Assets" xlink:to="DeferredIncomeTaxAssetsNet" xlink:title="calculation: Assets to DeferredIncomeTaxAssetsNet" order="5.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="OtherAssetsNoncurrent" xlink:title="OtherAssetsNoncurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="Assets" xlink:to="OtherAssetsNoncurrent" xlink:title="calculation: Assets to OtherAssetsNoncurrent" order="4.0" weight="1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xlink:label="ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xlink:title="ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xlink:to="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="calculation: ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest to OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="IncomeTaxExpenseBenefit" xlink:title="IncomeTaxExpenseBenefit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetIncomeLoss" xlink:to="IncomeTaxExpenseBenefit" xlink:title="calculation: NetIncomeLoss to IncomeTaxExpenseBenefit" order="2.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:title="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NonoperatingIncomeExpense" xlink:label="NonoperatingIncomeExpense" xlink:title="NonoperatingIncomeExpense" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InterestIncomeExpenseNet" xlink:label="InterestIncomeExpenseNet" xlink:title="InterestIncomeExpenseNet" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NonoperatingIncomeExpense" xlink:to="InterestIncomeExpenseNet" xlink:title="calculation: NonoperatingIncomeExpense to InterestIncomeExpenseNet" order="0.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="OtherNonoperatingIncomeExpense" xlink:title="OtherNonoperatingIncomeExpense" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NonoperatingIncomeExpense" xlink:to="OtherNonoperatingIncomeExpense" xlink:title="calculation: NonoperatingIncomeExpense to OtherNonoperatingIncomeExpense" order="1.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="NonoperatingIncomeExpense" xlink:title="calculation: IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest to NonoperatingIncomeExpense" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingIncomeLoss" xlink:label="OperatingIncomeLoss" xlink:title="OperatingIncomeLoss" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GrossProfit" xlink:label="GrossProfit" xlink:title="GrossProfit" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="CostOfGoodsAndServicesSold" xlink:title="CostOfGoodsAndServicesSold" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="GrossProfit" xlink:to="CostOfGoodsAndServicesSold" xlink:title="calculation: GrossProfit to CostOfGoodsAndServicesSold" order="2.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="GrossProfit" xlink:to="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="calculation: GrossProfit to RevenueFromContractWithCustomerExcludingAssessedTax" order="1.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="OperatingIncomeLoss" xlink:to="GrossProfit" xlink:title="calculation: OperatingIncomeLoss to GrossProfit" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingCostsAndExpenses" xlink:label="OperatingCostsAndExpenses" xlink:title="OperatingCostsAndExpenses" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="OperatingIncomeLoss" xlink:to="OperatingCostsAndExpenses" xlink:title="calculation: OperatingIncomeLoss to OperatingCostsAndExpenses" order="2.0" weight="-1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="OperatingIncomeLoss" xlink:title="calculation: IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest to OperatingIncomeLoss" order="2.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetIncomeLoss" xlink:to="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:title="calculation: NetIncomeLoss to IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" order="1.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xlink:to="NetIncomeLoss" xlink:title="calculation: ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest to NetIncomeLoss" order="1.0" weight="1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:title="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="NetCashProvidedByUsedInInvestingActivities" xlink:title="NetCashProvidedByUsedInInvestingActivities" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="PaymentsToAcquirePropertyPlantAndEquipment" xlink:title="PaymentsToAcquirePropertyPlantAndEquipment" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInInvestingActivities" xlink:to="PaymentsToAcquirePropertyPlantAndEquipment" xlink:title="calculation: NetCashProvidedByUsedInInvestingActivities to PaymentsToAcquirePropertyPlantAndEquipment" order="1.0" weight="-1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="NetCashProvidedByUsedInInvestingActivities" xlink:title="calculation: CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect to NetCashProvidedByUsedInInvestingActivities" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="NetCashProvidedByUsedInFinancingActivities" xlink:title="NetCashProvidedByUsedInFinancingActivities" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinanceLeasePrincipalPayments" xlink:label="FinanceLeasePrincipalPayments" xlink:title="FinanceLeasePrincipalPayments" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInFinancingActivities" xlink:to="FinanceLeasePrincipalPayments" xlink:title="calculation: NetCashProvidedByUsedInFinancingActivities to FinanceLeasePrincipalPayments" order="4.0" weight="-1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="NetCashProvidedByUsedInFinancingActivities" xlink:title="calculation: CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect to NetCashProvidedByUsedInFinancingActivities" order="3.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="calculation: CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect to EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" order="4.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="NetCashProvidedByUsedInOperatingActivities" xlink:title="NetCashProvidedByUsedInOperatingActivities" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="NetIncomeLoss" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to NetIncomeLoss" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" xlink:label="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" xlink:title="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="IncreaseDecreaseInInventories" xlink:title="IncreaseDecreaseInInventories" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" xlink:to="IncreaseDecreaseInInventories" xlink:title="calculation: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities to IncreaseDecreaseInInventories" order="1.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOtherNoncurrentAssets" xlink:label="IncreaseDecreaseInOtherNoncurrentAssets" xlink:title="IncreaseDecreaseInOtherNoncurrentAssets" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" xlink:to="IncreaseDecreaseInOtherNoncurrentAssets" xlink:title="calculation: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities to IncreaseDecreaseInOtherNoncurrentAssets" order="12.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="IncreaseDecreaseInAccountsPayable" xlink:title="IncreaseDecreaseInAccountsPayable" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" xlink:to="IncreaseDecreaseInAccountsPayable" xlink:title="calculation: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities to IncreaseDecreaseInAccountsPayable" order="4.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOperatingLeaseLiability" xlink:label="IncreaseDecreaseInOperatingLeaseLiability" xlink:title="IncreaseDecreaseInOperatingLeaseLiability" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" xlink:to="IncreaseDecreaseInOperatingLeaseLiability" xlink:title="calculation: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities to IncreaseDecreaseInOperatingLeaseLiability" order="13.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="IncreaseDecreaseInAccountsReceivable" xlink:title="IncreaseDecreaseInAccountsReceivable" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" xlink:to="IncreaseDecreaseInAccountsReceivable" xlink:title="calculation: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities to IncreaseDecreaseInAccountsReceivable" order="0.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInDeferredIncomeTaxes" xlink:label="IncreaseDecreaseInDeferredIncomeTaxes" xlink:title="IncreaseDecreaseInDeferredIncomeTaxes" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" xlink:to="IncreaseDecreaseInDeferredIncomeTaxes" xlink:title="calculation: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities to IncreaseDecreaseInDeferredIncomeTaxes" order="6.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOtherCurrentAssets" xlink:label="IncreaseDecreaseInOtherCurrentAssets" xlink:title="IncreaseDecreaseInOtherCurrentAssets" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" xlink:to="IncreaseDecreaseInOtherCurrentAssets" xlink:title="calculation: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities to IncreaseDecreaseInOtherCurrentAssets" order="3.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:label="IncreaseDecreaseInPrepaidExpense" xlink:title="IncreaseDecreaseInPrepaidExpense" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" xlink:to="IncreaseDecreaseInPrepaidExpense" xlink:title="calculation: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities to IncreaseDecreaseInPrepaidExpense" order="2.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="IncreaseDecreaseInAccruedLiabilities" xlink:title="IncreaseDecreaseInAccruedLiabilities" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" xlink:to="IncreaseDecreaseInAccruedLiabilities" xlink:title="calculation: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities to IncreaseDecreaseInAccruedLiabilities" order="5.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostOfGoodsAndServicesSoldDepreciation" xlink:label="CostOfGoodsAndServicesSoldDepreciation" xlink:title="CostOfGoodsAndServicesSoldDepreciation" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" xlink:to="CostOfGoodsAndServicesSoldDepreciation" xlink:title="calculation: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities to CostOfGoodsAndServicesSoldDepreciation" order="7.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GainLossOnDispositionOfAssets1" xlink:label="GainLossOnDispositionOfAssets1" xlink:title="GainLossOnDispositionOfAssets1" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" xlink:to="GainLossOnDispositionOfAssets1" xlink:title="calculation: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities to GainLossOnDispositionOfAssets1" order="9.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensation" xlink:label="ShareBasedCompensation" xlink:title="ShareBasedCompensation" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" xlink:to="ShareBasedCompensation" xlink:title="calculation: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities to ShareBasedCompensation" order="10.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:label="OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:title="OperatingLeaseRightOfUseAssetAmortizationExpense" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" xlink:to="OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:title="calculation: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities to OperatingLeaseRightOfUseAssetAmortizationExpense" order="8.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" order="1.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="NetCashProvidedByUsedInOperatingActivities" xlink:title="calculation: CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect to NetCashProvidedByUsedInOperatingActivities" order="2.0" weight="1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesInventoryDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNet" xlink:label="InventoryNet" xlink:title="InventoryNet" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherInventoryInTransit" xlink:label="OtherInventoryInTransit" xlink:title="OtherInventoryInTransit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="InventoryNet" xlink:to="OtherInventoryInTransit" xlink:title="calculation: InventoryNet to OtherInventoryInTransit" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryFinishedGoods" xlink:label="InventoryFinishedGoods" xlink:title="InventoryFinishedGoods" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="InventoryNet" xlink:to="InventoryFinishedGoods" xlink:title="calculation: InventoryNet to InventoryFinishedGoods" order="0.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryWorkInProcessAndRawMaterials" xlink:label="InventoryWorkInProcessAndRawMaterials" xlink:title="InventoryWorkInProcessAndRawMaterials" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="InventoryNet" xlink:to="InventoryWorkInProcessAndRawMaterials" xlink:title="calculation: InventoryNet to InventoryWorkInProcessAndRawMaterials" order="1.0" weight="1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:title="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" xlink:label="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" xlink:title="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:to="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" xlink:title="calculation: EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized to EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" order="0.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" xlink:label="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" xlink:title="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:to="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" xlink:title="calculation: EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized to EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" xlink:label="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" xlink:title="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:to="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" xlink:title="calculation: EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized to EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" order="3.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" xlink:label="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" xlink:title="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:to="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" xlink:title="calculation: EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized to EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" order="4.0" weight="1.0" />
  </link:calculationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>6
<FILENAME>tlfa-20240331_def.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION DEFINITION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii"?>
<!--Generated by Broadridge PROfile 24.3.1.5224 Broadridge-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:t1="http://xbrl.org/2005/xbrldt">
  <link:roleRef roleURI="http://tandyleather.com/role/ShareRepurchaseProgramAndShareRepurchasesDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#ShareRepurchaseProgramAndShareRepurchasesDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/EarningsPerShareDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#EarningsPerShareDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/StockbasedCompensationSummaryOfActivityForNonvestedRestrictedStockUnitAwardsDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#StockbasedCompensationSummaryOfActivityForNonvestedRestrictedStockUnitAwardsDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#StockbasedCompensation2013And2023RestrictedStockPlansDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/IncomeTaxDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#IncomeTaxDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/NotesPayableAndLongtermDebtDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#NotesPayableAndLongtermDebtDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesOtherIntangibleAssetsDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#BasisOfPresentationAndCertainSignificantAccountingPoliciesOtherIntangibleAssetsDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesAccountsReceivableAndExpectedCreditLossesDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#BasisOfPresentationAndCertainSignificantAccountingPoliciesAccountsReceivableAndExpectedCreditLossesDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesFairValueOfFinancialInstrumentsDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#BasisOfPresentationAndCertainSignificantAccountingPoliciesFairValueOfFinancialInstrumentsDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesInventoryDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#BasisOfPresentationAndCertainSignificantAccountingPoliciesInventoryDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPropertyAndEquipmentNetOfAccumulatedDepreciationDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#BasisOfPresentationAndCertainSignificantAccountingPoliciesPropertyAndEquipmentNetOfAccumulatedDepreciationDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesDiscountsDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#BasisOfPresentationAndCertainSignificantAccountingPoliciesDiscountsDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesBasisOfPresentationDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#BasisOfPresentationAndCertainSignificantAccountingPoliciesBasisOfPresentationDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/EarningsPerShareTables" xlink:type="simple" xlink:href="tlfa-20240331.xsd#EarningsPerShareTables" />
  <link:roleRef roleURI="http://tandyleather.com/role/StockbasedCompensationTables" xlink:type="simple" xlink:href="tlfa-20240331.xsd#StockbasedCompensationTables" />
  <link:roleRef roleURI="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesTables" xlink:type="simple" xlink:href="tlfa-20240331.xsd#BasisOfPresentationAndCertainSignificantAccountingPoliciesTables" />
  <link:roleRef roleURI="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPolicies" xlink:type="simple" xlink:href="tlfa-20240331.xsd#BasisOfPresentationAndCertainSignificantAccountingPoliciesPolicies" />
  <link:roleRef roleURI="http://tandyleather.com/role/ShareRepurchaseProgramAndShareRepurchases" xlink:type="simple" xlink:href="tlfa-20240331.xsd#ShareRepurchaseProgramAndShareRepurchases" />
  <link:roleRef roleURI="http://tandyleather.com/role/CommitmentsAndContingencies" xlink:type="simple" xlink:href="tlfa-20240331.xsd#CommitmentsAndContingencies" />
  <link:roleRef roleURI="http://tandyleather.com/role/EarningsPerShare" xlink:type="simple" xlink:href="tlfa-20240331.xsd#EarningsPerShare" />
  <link:roleRef roleURI="http://tandyleather.com/role/StockbasedCompensation" xlink:type="simple" xlink:href="tlfa-20240331.xsd#StockbasedCompensation" />
  <link:roleRef roleURI="http://tandyleather.com/role/IncomeTax" xlink:type="simple" xlink:href="tlfa-20240331.xsd#IncomeTax" />
  <link:roleRef roleURI="http://tandyleather.com/role/NotesPayableAndLongtermDebt" xlink:type="simple" xlink:href="tlfa-20240331.xsd#NotesPayableAndLongtermDebt" />
  <link:roleRef roleURI="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPolicies" xlink:type="simple" xlink:href="tlfa-20240331.xsd#BasisOfPresentationAndCertainSignificantAccountingPolicies" />
  <link:roleRef roleURI="http://tandyleather.com/role/CondensedConsolidatedStatementsOfStockholdersEquity" xlink:type="simple" xlink:href="tlfa-20240331.xsd#CondensedConsolidatedStatementsOfStockholdersEquity" />
  <link:roleRef roleURI="http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows" xlink:type="simple" xlink:href="tlfa-20240331.xsd#CondensedConsolidatedStatementsOfCashFlows" />
  <link:roleRef roleURI="http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome" xlink:type="simple" xlink:href="tlfa-20240331.xsd#CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome" />
  <link:roleRef roleURI="http://tandyleather.com/role/CondensedConsolidatedBalanceSheetsParenthetical" xlink:type="simple" xlink:href="tlfa-20240331.xsd#CondensedConsolidatedBalanceSheetsParenthetical" />
  <link:roleRef roleURI="http://tandyleather.com/role/CondensedConsolidatedBalanceSheets" xlink:type="simple" xlink:href="tlfa-20240331.xsd#CondensedConsolidatedBalanceSheets" />
  <link:roleRef roleURI="http://tandyleather.com/role/DocumentAndEntityInformation" xlink:type="simple" xlink:href="tlfa-20240331.xsd#DocumentAndEntityInformation" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/all" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#all" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-default" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-domain" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/domain-member" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#domain-member" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#hypercube-dimension" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/DocumentAndEntityInformation" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/CondensedConsolidatedBalanceSheets" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/CondensedConsolidatedBalanceSheetsParenthetical" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/CondensedConsolidatedStatementsOfStockholdersEquity">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems" xlink:label="StatementLineItems" xlink:title="StatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:label="IncreaseDecreaseInStockholdersEquityRollForward" xlink:title="IncreaseDecreaseInStockholdersEquityRollForward" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="IncreaseDecreaseInStockholdersEquityRollForward" xlink:title="definition: StatementLineItems to IncreaseDecreaseInStockholdersEquityRollForward" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity" xlink:label="StockholdersEquity" xlink:title="StockholdersEquity" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="StockholdersEquity" xlink:title="definition: StatementLineItems to StockholdersEquity" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharesOutstanding" xlink:label="SharesOutstanding" xlink:title="SharesOutstanding" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="SharesOutstanding" xlink:title="definition: StatementLineItems to SharesOutstanding" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:title="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:title="definition: StatementLineItems to AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardGross" xlink:label="StockIssuedDuringPeriodValueRestrictedStockAwardGross" xlink:title="StockIssuedDuringPeriodValueRestrictedStockAwardGross" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="StockIssuedDuringPeriodValueRestrictedStockAwardGross" xlink:title="definition: StatementLineItems to StockIssuedDuringPeriodValueRestrictedStockAwardGross" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xlink:label="StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xlink:title="StockIssuedDuringPeriodSharesRestrictedStockAwardGross" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xlink:title="definition: StatementLineItems to StockIssuedDuringPeriodSharesRestrictedStockAwardGross" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchasedAndRetiredDuringPeriodValue" xlink:label="StockRepurchasedAndRetiredDuringPeriodValue" xlink:title="StockRepurchasedAndRetiredDuringPeriodValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="StockRepurchasedAndRetiredDuringPeriodValue" xlink:title="definition: StatementLineItems to StockRepurchasedAndRetiredDuringPeriodValue" order="7.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchasedAndRetiredDuringPeriodShares" xlink:label="StockRepurchasedAndRetiredDuringPeriodShares" xlink:title="StockRepurchasedAndRetiredDuringPeriodShares" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="StockRepurchasedAndRetiredDuringPeriodShares" xlink:title="definition: StatementLineItems to StockRepurchasedAndRetiredDuringPeriodShares" order="8.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="NetIncomeLoss" xlink:title="definition: StatementLineItems to NetIncomeLoss" order="9.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="definition: StatementLineItems to OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" order="10.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable" xlink:label="StatementTable" xlink:title="StatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="StatementLineItems" xlink:to="StatementTable" xlink:title="definition: StatementLineItems to StatementTable" order="11.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="StatementEquityComponentsAxis" xlink:title="StatementEquityComponentsAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="StatementTable" xlink:to="StatementEquityComponentsAxis" xlink:title="definition: StatementTable to StatementEquityComponentsAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityComponentDomain" xlink:label="EquityComponentDomain" xlink:title="EquityComponentDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="StatementEquityComponentsAxis" xlink:to="EquityComponentDomain" xlink:title="definition: StatementEquityComponentsAxis to EquityComponentDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityComponentDomain" xlink:label="EquityComponentDomain_2" xlink:title="EquityComponentDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="StatementEquityComponentsAxis" xlink:to="EquityComponentDomain_2" xlink:title="definition: StatementEquityComponentsAxis to EquityComponentDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockMember" xlink:label="CommonStockMember" xlink:title="CommonStockMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EquityComponentDomain" xlink:to="CommonStockMember" xlink:title="definition: EquityComponentDomain to CommonStockMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="AdditionalPaidInCapitalMember" xlink:title="AdditionalPaidInCapitalMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EquityComponentDomain" xlink:to="AdditionalPaidInCapitalMember" xlink:title="definition: EquityComponentDomain to AdditionalPaidInCapitalMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TreasuryStockCommonMember" xlink:label="TreasuryStockCommonMember" xlink:title="TreasuryStockCommonMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EquityComponentDomain" xlink:to="TreasuryStockCommonMember" xlink:title="definition: EquityComponentDomain to TreasuryStockCommonMember" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsMember" xlink:label="RetainedEarningsMember" xlink:title="RetainedEarningsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EquityComponentDomain" xlink:to="RetainedEarningsMember" xlink:title="definition: EquityComponentDomain to RetainedEarningsMember" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="AccumulatedOtherComprehensiveIncomeMember" xlink:title="AccumulatedOtherComprehensiveIncomeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EquityComponentDomain" xlink:to="AccumulatedOtherComprehensiveIncomeMember" xlink:title="definition: EquityComponentDomain to AccumulatedOtherComprehensiveIncomeMember" order="5.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPolicies" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/NotesPayableAndLongtermDebt" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/IncomeTax" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/StockbasedCompensation" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/EarningsPerShare" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/CommitmentsAndContingencies" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/ShareRepurchaseProgramAndShareRepurchases" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPolicies" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesTables" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/StockbasedCompensationTables" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/EarningsPerShareTables" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesBasisOfPresentationDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="SegmentReportingInformationLineItems" xlink:title="SegmentReportingInformationLineItems" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_BusinessDescriptionAbstract" xlink:label="BusinessDescriptionAbstract" xlink:title="BusinessDescriptionAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="BusinessDescriptionAbstract" xlink:title="definition: SegmentReportingInformationLineItems to BusinessDescriptionAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NumberOfStores" xlink:label="NumberOfStores" xlink:title="NumberOfStores" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="NumberOfStores" xlink:title="definition: SegmentReportingInformationLineItems to NumberOfStores" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NumberOfOperatingSegments" xlink:label="NumberOfOperatingSegments" xlink:title="NumberOfOperatingSegments" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="NumberOfOperatingSegments" xlink:title="definition: SegmentReportingInformationLineItems to NumberOfOperatingSegments" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NumberOfReportableSegments" xlink:label="NumberOfReportableSegments" xlink:title="NumberOfReportableSegments" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="NumberOfReportableSegments" xlink:title="definition: SegmentReportingInformationLineItems to NumberOfReportableSegments" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="ScheduleOfSegmentReportingInformationBySegmentTable" xlink:title="ScheduleOfSegmentReportingInformationBySegmentTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="SegmentReportingInformationLineItems" xlink:to="ScheduleOfSegmentReportingInformationBySegmentTable" xlink:title="definition: SegmentReportingInformationLineItems to ScheduleOfSegmentReportingInformationBySegmentTable" order="5.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementGeographicalAxis" xlink:label="StatementGeographicalAxis" xlink:title="StatementGeographicalAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="StatementGeographicalAxis" xlink:title="definition: ScheduleOfSegmentReportingInformationBySegmentTable to StatementGeographicalAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain" xlink:label="SegmentGeographicalDomain" xlink:title="SegmentGeographicalDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="StatementGeographicalAxis" xlink:to="SegmentGeographicalDomain" xlink:title="definition: StatementGeographicalAxis to SegmentGeographicalDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain" xlink:label="SegmentGeographicalDomain_2" xlink:title="SegmentGeographicalDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="StatementGeographicalAxis" xlink:to="SegmentGeographicalDomain_2" xlink:title="definition: StatementGeographicalAxis to SegmentGeographicalDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_US" xlink:label="US" xlink:title="US" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentGeographicalDomain" xlink:to="US" xlink:title="definition: SegmentGeographicalDomain to US" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_CA" xlink:label="CA" xlink:title="CA" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentGeographicalDomain" xlink:to="CA" xlink:title="definition: SegmentGeographicalDomain to CA" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_ES" xlink:label="ES" xlink:title="ES" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentGeographicalDomain" xlink:to="ES" xlink:title="definition: SegmentGeographicalDomain to ES" order="3.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="DisaggregationOfRevenueLineItems" xlink:title="DisaggregationOfRevenueLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="RevenueFromContractWithCustomerAbstract" xlink:title="RevenueFromContractWithCustomerAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DisaggregationOfRevenueLineItems" xlink:to="RevenueFromContractWithCustomerAbstract" xlink:title="definition: DisaggregationOfRevenueLineItems to RevenueFromContractWithCustomerAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueAbstract" xlink:label="DisaggregationOfRevenueAbstract" xlink:title="DisaggregationOfRevenueAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DisaggregationOfRevenueLineItems" xlink:to="DisaggregationOfRevenueAbstract" xlink:title="definition: DisaggregationOfRevenueLineItems to DisaggregationOfRevenueAbstract" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DisaggregationOfRevenueLineItems" xlink:to="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="definition: DisaggregationOfRevenueLineItems to RevenueFromContractWithCustomerExcludingAssessedTax" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="ConcentrationRiskPercentage1" xlink:title="ConcentrationRiskPercentage1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DisaggregationOfRevenueLineItems" xlink:to="ConcentrationRiskPercentage1" xlink:title="definition: DisaggregationOfRevenueLineItems to ConcentrationRiskPercentage1" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss" xlink:label="ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss" xlink:title="ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DisaggregationOfRevenueLineItems" xlink:to="ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss" xlink:title="definition: DisaggregationOfRevenueLineItems to ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_InventoryMerchandiseExpectedToBeReturned" xlink:label="InventoryMerchandiseExpectedToBeReturned" xlink:title="InventoryMerchandiseExpectedToBeReturned" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DisaggregationOfRevenueLineItems" xlink:to="InventoryMerchandiseExpectedToBeReturned" xlink:title="definition: DisaggregationOfRevenueLineItems to InventoryMerchandiseExpectedToBeReturned" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_GiftCardRedemptionPeriod" xlink:label="GiftCardRedemptionPeriod" xlink:title="GiftCardRedemptionPeriod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DisaggregationOfRevenueLineItems" xlink:to="GiftCardRedemptionPeriod" xlink:title="definition: DisaggregationOfRevenueLineItems to GiftCardRedemptionPeriod" order="7.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="ContractWithCustomerLiability" xlink:title="ContractWithCustomerLiability" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DisaggregationOfRevenueLineItems" xlink:to="ContractWithCustomerLiability" xlink:title="definition: DisaggregationOfRevenueLineItems to ContractWithCustomerLiability" order="8.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="ContractWithCustomerLiabilityRevenueRecognized" xlink:title="ContractWithCustomerLiabilityRevenueRecognized" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DisaggregationOfRevenueLineItems" xlink:to="ContractWithCustomerLiabilityRevenueRecognized" xlink:title="definition: DisaggregationOfRevenueLineItems to ContractWithCustomerLiabilityRevenueRecognized" order="9.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredRevenueRevenueRecognized1" xlink:label="DeferredRevenueRevenueRecognized1" xlink:title="DeferredRevenueRevenueRecognized1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DisaggregationOfRevenueLineItems" xlink:to="DeferredRevenueRevenueRecognized1" xlink:title="definition: DisaggregationOfRevenueLineItems to DeferredRevenueRevenueRecognized1" order="10.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="DisaggregationOfRevenueTable" xlink:title="DisaggregationOfRevenueTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="DisaggregationOfRevenueLineItems" xlink:to="DisaggregationOfRevenueTable" xlink:title="definition: DisaggregationOfRevenueLineItems to DisaggregationOfRevenueTable" order="11.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="DisaggregationOfRevenueTable" xlink:to="RangeAxis" xlink:title="definition: DisaggregationOfRevenueTable to RangeAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="RangeAxis" xlink:to="RangeMember" xlink:title="definition: RangeAxis to RangeMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="RangeMember_2" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="RangeAxis" xlink:to="RangeMember_2" xlink:title="definition: RangeAxis to RangeMember_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember" xlink:label="MinimumMember" xlink:title="MinimumMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RangeMember" xlink:to="MinimumMember" xlink:title="definition: RangeMember to MinimumMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember" xlink:label="MaximumMember" xlink:title="MaximumMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RangeMember" xlink:to="MaximumMember" xlink:title="definition: RangeMember to MaximumMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementGeographicalAxis" xlink:label="StatementGeographicalAxis" xlink:title="StatementGeographicalAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="DisaggregationOfRevenueTable" xlink:to="StatementGeographicalAxis" xlink:title="definition: DisaggregationOfRevenueTable to StatementGeographicalAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain" xlink:label="SegmentGeographicalDomain" xlink:title="SegmentGeographicalDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="StatementGeographicalAxis" xlink:to="SegmentGeographicalDomain" xlink:title="definition: StatementGeographicalAxis to SegmentGeographicalDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain" xlink:label="SegmentGeographicalDomain_2" xlink:title="SegmentGeographicalDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="StatementGeographicalAxis" xlink:to="SegmentGeographicalDomain_2" xlink:title="definition: StatementGeographicalAxis to SegmentGeographicalDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_US" xlink:label="US" xlink:title="US" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentGeographicalDomain" xlink:to="US" xlink:title="definition: SegmentGeographicalDomain to US" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_CA" xlink:label="CA" xlink:title="CA" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentGeographicalDomain" xlink:to="CA" xlink:title="definition: SegmentGeographicalDomain to CA" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_OtherCountriesMember" xlink:label="OtherCountriesMember" xlink:title="OtherCountriesMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentGeographicalDomain" xlink:to="OtherCountriesMember" xlink:title="definition: SegmentGeographicalDomain to OtherCountriesMember" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_AllOtherCountriesMember" xlink:label="AllOtherCountriesMember" xlink:title="AllOtherCountriesMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentGeographicalDomain" xlink:to="AllOtherCountriesMember" xlink:title="definition: SegmentGeographicalDomain to AllOtherCountriesMember" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="ConcentrationRiskByTypeAxis" xlink:title="ConcentrationRiskByTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="DisaggregationOfRevenueTable" xlink:to="ConcentrationRiskByTypeAxis" xlink:title="definition: DisaggregationOfRevenueTable to ConcentrationRiskByTypeAxis" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="ConcentrationRiskTypeDomain" xlink:title="ConcentrationRiskTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="ConcentrationRiskByTypeAxis" xlink:to="ConcentrationRiskTypeDomain" xlink:title="definition: ConcentrationRiskByTypeAxis to ConcentrationRiskTypeDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="ConcentrationRiskTypeDomain_2" xlink:title="ConcentrationRiskTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="ConcentrationRiskByTypeAxis" xlink:to="ConcentrationRiskTypeDomain_2" xlink:title="definition: ConcentrationRiskByTypeAxis to ConcentrationRiskTypeDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GeographicConcentrationRiskMember" xlink:label="GeographicConcentrationRiskMember" xlink:title="GeographicConcentrationRiskMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ConcentrationRiskTypeDomain" xlink:to="GeographicConcentrationRiskMember" xlink:title="definition: ConcentrationRiskTypeDomain to GeographicConcentrationRiskMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="ConcentrationRiskByBenchmarkAxis" xlink:title="ConcentrationRiskByBenchmarkAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="DisaggregationOfRevenueTable" xlink:to="ConcentrationRiskByBenchmarkAxis" xlink:title="definition: DisaggregationOfRevenueTable to ConcentrationRiskByBenchmarkAxis" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="ConcentrationRiskBenchmarkDomain" xlink:title="ConcentrationRiskBenchmarkDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="ConcentrationRiskByBenchmarkAxis" xlink:to="ConcentrationRiskBenchmarkDomain" xlink:title="definition: ConcentrationRiskByBenchmarkAxis to ConcentrationRiskBenchmarkDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="ConcentrationRiskBenchmarkDomain_2" xlink:title="ConcentrationRiskBenchmarkDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="ConcentrationRiskByBenchmarkAxis" xlink:to="ConcentrationRiskBenchmarkDomain_2" xlink:title="definition: ConcentrationRiskByBenchmarkAxis to ConcentrationRiskBenchmarkDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SalesRevenueNetMember" xlink:label="SalesRevenueNetMember" xlink:title="SalesRevenueNetMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ConcentrationRiskBenchmarkDomain" xlink:to="SalesRevenueNetMember" xlink:title="definition: ConcentrationRiskBenchmarkDomain to SalesRevenueNetMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="BalanceSheetLocationAxis" xlink:title="BalanceSheetLocationAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="DisaggregationOfRevenueTable" xlink:to="BalanceSheetLocationAxis" xlink:title="definition: DisaggregationOfRevenueTable to BalanceSheetLocationAxis" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="BalanceSheetLocationDomain" xlink:title="BalanceSheetLocationDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="BalanceSheetLocationAxis" xlink:to="BalanceSheetLocationDomain" xlink:title="definition: BalanceSheetLocationAxis to BalanceSheetLocationDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="BalanceSheetLocationDomain_2" xlink:title="BalanceSheetLocationDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="BalanceSheetLocationAxis" xlink:to="BalanceSheetLocationDomain_2" xlink:title="definition: BalanceSheetLocationAxis to BalanceSheetLocationDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesMember" xlink:label="AccountsPayableAndAccruedLiabilitiesMember" xlink:title="AccountsPayableAndAccruedLiabilitiesMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="BalanceSheetLocationDomain" xlink:to="AccountsPayableAndAccruedLiabilitiesMember" xlink:title="definition: BalanceSheetLocationDomain to AccountsPayableAndAccruedLiabilitiesMember" order="1.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesDiscountsDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPropertyAndEquipmentNetOfAccumulatedDepreciationDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentLineItems" xlink:label="PropertyPlantAndEquipmentLineItems" xlink:title="PropertyPlantAndEquipmentLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNetAbstract" xlink:label="PropertyPlantAndEquipmentNetAbstract" xlink:title="PropertyPlantAndEquipmentNetAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="PropertyPlantAndEquipmentNetAbstract" xlink:title="definition: PropertyPlantAndEquipmentLineItems to PropertyPlantAndEquipmentNetAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="PropertyPlantAndEquipmentUsefulLife" xlink:title="PropertyPlantAndEquipmentUsefulLife" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="PropertyPlantAndEquipmentUsefulLife" xlink:title="definition: PropertyPlantAndEquipmentLineItems to PropertyPlantAndEquipmentUsefulLife" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:label="ScheduleOfPropertyPlantAndEquipmentTable" xlink:title="ScheduleOfPropertyPlantAndEquipmentTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="ScheduleOfPropertyPlantAndEquipmentTable" xlink:title="definition: PropertyPlantAndEquipmentLineItems to ScheduleOfPropertyPlantAndEquipmentTable" order="3.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="PropertyPlantAndEquipmentByTypeAxis" xlink:title="PropertyPlantAndEquipmentByTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="PropertyPlantAndEquipmentByTypeAxis" xlink:title="definition: ScheduleOfPropertyPlantAndEquipmentTable to PropertyPlantAndEquipmentByTypeAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="PropertyPlantAndEquipmentTypeDomain" xlink:title="PropertyPlantAndEquipmentTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="PropertyPlantAndEquipmentByTypeAxis" xlink:to="PropertyPlantAndEquipmentTypeDomain" xlink:title="definition: PropertyPlantAndEquipmentByTypeAxis to PropertyPlantAndEquipmentTypeDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="PropertyPlantAndEquipmentTypeDomain_2" xlink:title="PropertyPlantAndEquipmentTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="PropertyPlantAndEquipmentByTypeAxis" xlink:to="PropertyPlantAndEquipmentTypeDomain_2" xlink:title="definition: PropertyPlantAndEquipmentByTypeAxis to PropertyPlantAndEquipmentTypeDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="MachineryAndEquipmentMember" xlink:title="MachineryAndEquipmentMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="MachineryAndEquipmentMember" xlink:title="definition: PropertyPlantAndEquipmentTypeDomain to MachineryAndEquipmentMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="FurnitureAndFixturesMember" xlink:title="FurnitureAndFixturesMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="FurnitureAndFixturesMember" xlink:title="definition: PropertyPlantAndEquipmentTypeDomain to FurnitureAndFixturesMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VehiclesMember" xlink:label="VehiclesMember" xlink:title="VehiclesMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="VehiclesMember" xlink:title="definition: PropertyPlantAndEquipmentTypeDomain to VehiclesMember" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BuildingAndBuildingImprovementsMember" xlink:label="BuildingAndBuildingImprovementsMember" xlink:title="BuildingAndBuildingImprovementsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="BuildingAndBuildingImprovementsMember" xlink:title="definition: PropertyPlantAndEquipmentTypeDomain to BuildingAndBuildingImprovementsMember" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="RangeAxis" xlink:title="definition: ScheduleOfPropertyPlantAndEquipmentTable to RangeAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="RangeAxis" xlink:to="RangeMember" xlink:title="definition: RangeAxis to RangeMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="RangeMember_2" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="RangeAxis" xlink:to="RangeMember_2" xlink:title="definition: RangeAxis to RangeMember_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember" xlink:label="MinimumMember" xlink:title="MinimumMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RangeMember" xlink:to="MinimumMember" xlink:title="definition: RangeMember to MinimumMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember" xlink:label="MaximumMember" xlink:title="MaximumMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RangeMember" xlink:to="MaximumMember" xlink:title="definition: RangeMember to MaximumMember" order="2.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesInventoryDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesFairValueOfFinancialInstrumentsDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesAccountsReceivableAndExpectedCreditLossesDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesOtherIntangibleAssetsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="FiniteLivedIntangibleAssetsLineItems" xlink:title="FiniteLivedIntangibleAssetsLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsNetAbstract" xlink:label="FiniteLivedIntangibleAssetsNetAbstract" xlink:title="FiniteLivedIntangibleAssetsNetAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="FiniteLivedIntangibleAssetsNetAbstract" xlink:title="definition: FiniteLivedIntangibleAssetsLineItems to FiniteLivedIntangibleAssetsNetAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:label="AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:title="AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:title="definition: FiniteLivedIntangibleAssetsLineItems to AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="AmortizationOfIntangibleAssets" xlink:title="AmortizationOfIntangibleAssets" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="AmortizationOfIntangibleAssets" xlink:title="definition: FiniteLivedIntangibleAssetsLineItems to AmortizationOfIntangibleAssets" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:title="FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:title="definition: FiniteLivedIntangibleAssetsLineItems to FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:title="FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:title="definition: FiniteLivedIntangibleAssetsLineItems to FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:title="FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:title="definition: FiniteLivedIntangibleAssetsLineItems to FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:title="FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:title="definition: FiniteLivedIntangibleAssetsLineItems to FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" order="7.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:title="FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:title="definition: FiniteLivedIntangibleAssetsLineItems to FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" order="8.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:title="ScheduleOfFiniteLivedIntangibleAssetsTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:title="definition: FiniteLivedIntangibleAssetsLineItems to ScheduleOfFiniteLivedIntangibleAssetsTable" order="9.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:title="FiniteLivedIntangibleAssetsByMajorClassAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:title="definition: ScheduleOfFiniteLivedIntangibleAssetsTable to FiniteLivedIntangibleAssetsByMajorClassAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:title="FiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:title="definition: FiniteLivedIntangibleAssetsByMajorClassAxis to FiniteLivedIntangibleAssetsMajorClassNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="FiniteLivedIntangibleAssetsMajorClassNameDomain_2" xlink:title="FiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="FiniteLivedIntangibleAssetsMajorClassNameDomain_2" xlink:title="definition: FiniteLivedIntangibleAssetsByMajorClassAxis to FiniteLivedIntangibleAssetsMajorClassNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntellectualPropertyMember" xlink:label="IntellectualPropertyMember" xlink:title="IntellectualPropertyMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="IntellectualPropertyMember" xlink:title="definition: FiniteLivedIntangibleAssetsMajorClassNameDomain to IntellectualPropertyMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="RangeAxis" xlink:title="definition: ScheduleOfFiniteLivedIntangibleAssetsTable to RangeAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="RangeAxis" xlink:to="RangeMember" xlink:title="definition: RangeAxis to RangeMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="RangeMember_2" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="RangeAxis" xlink:to="RangeMember_2" xlink:title="definition: RangeAxis to RangeMember_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember" xlink:label="MaximumMember" xlink:title="MaximumMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RangeMember" xlink:to="MaximumMember" xlink:title="definition: RangeMember to MaximumMember" order="1.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/NotesPayableAndLongtermDebtDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="DebtInstrumentLineItems" xlink:title="DebtInstrumentLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentsAbstract" xlink:label="DebtInstrumentsAbstract" xlink:title="DebtInstrumentsAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentsAbstract" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentsAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="LineOfCreditFacilityMaximumBorrowingCapacity" xlink:title="LineOfCreditFacilityMaximumBorrowingCapacity" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="LineOfCreditFacilityMaximumBorrowingCapacity" xlink:title="definition: DebtInstrumentLineItems to LineOfCreditFacilityMaximumBorrowingCapacity" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="ProceedsFromLinesOfCredit" xlink:title="ProceedsFromLinesOfCredit" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="ProceedsFromLinesOfCredit" xlink:title="definition: DebtInstrumentLineItems to ProceedsFromLinesOfCredit" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentTable" xlink:label="DebtInstrumentTable" xlink:title="DebtInstrumentTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentTable" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentTable" order="4.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="LineOfCreditFacilityAxis" xlink:title="LineOfCreditFacilityAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="DebtInstrumentTable" xlink:to="LineOfCreditFacilityAxis" xlink:title="definition: DebtInstrumentTable to LineOfCreditFacilityAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="LineOfCreditFacilityLenderDomain" xlink:title="LineOfCreditFacilityLenderDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="LineOfCreditFacilityAxis" xlink:to="LineOfCreditFacilityLenderDomain" xlink:title="definition: LineOfCreditFacilityAxis to LineOfCreditFacilityLenderDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="LineOfCreditFacilityLenderDomain_2" xlink:title="LineOfCreditFacilityLenderDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="LineOfCreditFacilityAxis" xlink:to="LineOfCreditFacilityLenderDomain_2" xlink:title="definition: LineOfCreditFacilityAxis to LineOfCreditFacilityLenderDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_JPMorganChaseBankNAMember" xlink:label="JPMorganChaseBankNAMember" xlink:title="JPMorganChaseBankNAMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="LineOfCreditFacilityLenderDomain" xlink:to="JPMorganChaseBankNAMember" xlink:title="definition: LineOfCreditFacilityLenderDomain to JPMorganChaseBankNAMember" order="1.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/IncomeTaxDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:label="CommonStockCapitalSharesReservedForFutureIssuance" xlink:title="CommonStockCapitalSharesReservedForFutureIssuance" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="CommonStockCapitalSharesReservedForFutureIssuance" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to CommonStockCapitalSharesReservedForFutureIssuance" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="5.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameAxis" xlink:label="PlanNameAxis" xlink:title="PlanNameAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="PlanNameAxis" xlink:title="definition: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to PlanNameAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameDomain" xlink:label="PlanNameDomain" xlink:title="PlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="PlanNameAxis" xlink:to="PlanNameDomain" xlink:title="definition: PlanNameAxis to PlanNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameDomain" xlink:label="PlanNameDomain_2" xlink:title="PlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="PlanNameAxis" xlink:to="PlanNameDomain_2" xlink:title="definition: PlanNameAxis to PlanNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_TwoThousandAndThirteenRestrictedStockPlanMember" xlink:label="TwoThousandAndThirteenRestrictedStockPlanMember" xlink:title="TwoThousandAndThirteenRestrictedStockPlanMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PlanNameDomain" xlink:to="TwoThousandAndThirteenRestrictedStockPlanMember" xlink:title="definition: PlanNameDomain to TwoThousandAndThirteenRestrictedStockPlanMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_TwoThousandAndTwentyThreeRestrictedStockPlanMember" xlink:label="TwoThousandAndTwentyThreeRestrictedStockPlanMember" xlink:title="TwoThousandAndTwentyThreeRestrictedStockPlanMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PlanNameDomain" xlink:to="TwoThousandAndTwentyThreeRestrictedStockPlanMember" xlink:title="definition: PlanNameDomain to TwoThousandAndTwentyThreeRestrictedStockPlanMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis" xlink:label="AwardTypeAxis" xlink:title="AwardTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="AwardTypeAxis" xlink:title="definition: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to AwardTypeAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="definition: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" xlink:title="definition: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="RestrictedStockUnitsRSUMember" xlink:title="RestrictedStockUnitsRSUMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="RestrictedStockUnitsRSUMember" xlink:title="definition: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to RestrictedStockUnitsRSUMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_ServicedBasedRestrictedStockUnitsRSUsMember" xlink:label="ServicedBasedRestrictedStockUnitsRSUsMember" xlink:title="ServicedBasedRestrictedStockUnitsRSUsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RestrictedStockUnitsRSUMember" xlink:to="ServicedBasedRestrictedStockUnitsRSUsMember" xlink:title="definition: RestrictedStockUnitsRSUMember to ServicedBasedRestrictedStockUnitsRSUsMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_TitleOfIndividualAxis" xlink:label="TitleOfIndividualAxis" xlink:title="TitleOfIndividualAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="TitleOfIndividualAxis" xlink:title="definition: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to TitleOfIndividualAxis" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="TitleOfIndividualWithRelationshipToEntityDomain" xlink:title="TitleOfIndividualWithRelationshipToEntityDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="TitleOfIndividualAxis" xlink:to="TitleOfIndividualWithRelationshipToEntityDomain" xlink:title="definition: TitleOfIndividualAxis to TitleOfIndividualWithRelationshipToEntityDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="TitleOfIndividualWithRelationshipToEntityDomain_2" xlink:title="TitleOfIndividualWithRelationshipToEntityDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="TitleOfIndividualAxis" xlink:to="TitleOfIndividualWithRelationshipToEntityDomain_2" xlink:title="definition: TitleOfIndividualAxis to TitleOfIndividualWithRelationshipToEntityDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_DirectorMember" xlink:label="DirectorMember" xlink:title="DirectorMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="DirectorMember" xlink:title="definition: TitleOfIndividualWithRelationshipToEntityDomain to DirectorMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ChiefExecutiveOfficerMember" xlink:label="ChiefExecutiveOfficerMember" xlink:title="ChiefExecutiveOfficerMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="ChiefExecutiveOfficerMember" xlink:title="definition: TitleOfIndividualWithRelationshipToEntityDomain to ChiefExecutiveOfficerMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="RangeAxis" xlink:title="definition: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to RangeAxis" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="RangeAxis" xlink:to="RangeMember" xlink:title="definition: RangeAxis to RangeMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="RangeMember_2" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="RangeAxis" xlink:to="RangeMember_2" xlink:title="definition: RangeAxis to RangeMember_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember" xlink:label="MinimumMember" xlink:title="MinimumMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RangeMember" xlink:to="MinimumMember" xlink:title="definition: RangeMember to MinimumMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember" xlink:label="MaximumMember" xlink:title="MaximumMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RangeMember" xlink:to="MaximumMember" xlink:title="definition: RangeMember to MaximumMember" order="2.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/StockbasedCompensationSummaryOfActivityForNonvestedRestrictedStockUnitAwardsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" order="7.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" order="8.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" order="9.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" order="10.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="11.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis" xlink:label="AwardTypeAxis" xlink:title="AwardTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="AwardTypeAxis" xlink:title="definition: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to AwardTypeAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="definition: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" xlink:title="definition: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_RestrictedStockAndRestrictedStockUnitsMember" xlink:label="RestrictedStockAndRestrictedStockUnitsMember" xlink:title="RestrictedStockAndRestrictedStockUnitsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="RestrictedStockAndRestrictedStockUnitsMember" xlink:title="definition: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to RestrictedStockAndRestrictedStockUnitsMember" order="1.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationAbstract" xlink:label="ShareBasedCompensationAbstract" xlink:title="ShareBasedCompensationAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationAbstract" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="AllocatedShareBasedCompensationExpense" xlink:title="AllocatedShareBasedCompensationExpense" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="AllocatedShareBasedCompensationExpense" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to AllocatedShareBasedCompensationExpense" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" xlink:label="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" xlink:title="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" xlink:label="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" xlink:title="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" xlink:label="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" xlink:title="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" xlink:label="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" xlink:title="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:title="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" order="7.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xlink:label="StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xlink:title="StockIssuedDuringPeriodSharesRestrictedStockAwardGross" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to StockIssuedDuringPeriodSharesRestrictedStockAwardGross" order="8.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="9.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis" xlink:label="AwardTypeAxis" xlink:title="AwardTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="AwardTypeAxis" xlink:title="definition: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to AwardTypeAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="definition: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" xlink:title="definition: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_ServicedBasedRestrictedStockUnitsRSUsMember" xlink:label="ServicedBasedRestrictedStockUnitsRSUsMember" xlink:title="ServicedBasedRestrictedStockUnitsRSUsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="ServicedBasedRestrictedStockUnitsRSUsMember" xlink:title="definition: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to ServicedBasedRestrictedStockUnitsRSUsMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_PerformanceBasedRestrictedStockUnitsRSUsMember" xlink:label="PerformanceBasedRestrictedStockUnitsRSUsMember" xlink:title="PerformanceBasedRestrictedStockUnitsRSUsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="PerformanceBasedRestrictedStockUnitsRSUsMember" xlink:title="definition: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to PerformanceBasedRestrictedStockUnitsRSUsMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_RestrictedStockAndRestrictedStockUnitsMember" xlink:label="RestrictedStockAndRestrictedStockUnitsMember" xlink:title="RestrictedStockAndRestrictedStockUnitsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="RestrictedStockAndRestrictedStockUnitsMember" xlink:title="definition: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to RestrictedStockAndRestrictedStockUnitsMember" order="3.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/EarningsPerShareDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareDilutedLineItems" xlink:label="EarningsPerShareDilutedLineItems" xlink:title="EarningsPerShareDilutedLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLossAbstract" xlink:label="NetIncomeLossAbstract" xlink:title="NetIncomeLossAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EarningsPerShareDilutedLineItems" xlink:to="NetIncomeLossAbstract" xlink:title="definition: EarningsPerShareDilutedLineItems to NetIncomeLossAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="WeightedAverageNumberOfSharesOutstandingAbstract" xlink:title="WeightedAverageNumberOfSharesOutstandingAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EarningsPerShareDilutedLineItems" xlink:to="WeightedAverageNumberOfSharesOutstandingAbstract" xlink:title="definition: EarningsPerShareDilutedLineItems to WeightedAverageNumberOfSharesOutstandingAbstract" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="WeightedAverageNumberOfSharesOutstandingBasic" xlink:title="WeightedAverageNumberOfSharesOutstandingBasic" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EarningsPerShareDilutedLineItems" xlink:to="WeightedAverageNumberOfSharesOutstandingBasic" xlink:title="definition: EarningsPerShareDilutedLineItems to WeightedAverageNumberOfSharesOutstandingBasic" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:title="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EarningsPerShareDilutedLineItems" xlink:to="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:title="definition: EarningsPerShareDilutedLineItems to IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:title="WeightedAverageNumberOfDilutedSharesOutstanding" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EarningsPerShareDilutedLineItems" xlink:to="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:title="definition: EarningsPerShareDilutedLineItems to WeightedAverageNumberOfDilutedSharesOutstanding" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareBasic" xlink:label="EarningsPerShareBasic" xlink:title="EarningsPerShareBasic" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EarningsPerShareDilutedLineItems" xlink:to="EarningsPerShareBasic" xlink:title="definition: EarningsPerShareDilutedLineItems to EarningsPerShareBasic" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="EarningsPerShareDiluted" xlink:title="EarningsPerShareDiluted" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EarningsPerShareDilutedLineItems" xlink:to="EarningsPerShareDiluted" xlink:title="definition: EarningsPerShareDilutedLineItems to EarningsPerShareDiluted" order="7.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EarningsPerShareDilutedLineItems" xlink:to="NetIncomeLoss" xlink:title="definition: EarningsPerShareDilutedLineItems to NetIncomeLoss" order="8.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEarningsPerShareDilutedByCommonClassTable" xlink:label="ScheduleOfEarningsPerShareDilutedByCommonClassTable" xlink:title="ScheduleOfEarningsPerShareDilutedByCommonClassTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="EarningsPerShareDilutedLineItems" xlink:to="ScheduleOfEarningsPerShareDilutedByCommonClassTable" xlink:title="definition: EarningsPerShareDilutedLineItems to ScheduleOfEarningsPerShareDilutedByCommonClassTable" order="9.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis" xlink:label="AwardTypeAxis" xlink:title="AwardTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfEarningsPerShareDilutedByCommonClassTable" xlink:to="AwardTypeAxis" xlink:title="definition: ScheduleOfEarningsPerShareDilutedByCommonClassTable to AwardTypeAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="definition: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" xlink:title="definition: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockMember" xlink:label="RestrictedStockMember" xlink:title="RestrictedStockMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="RestrictedStockMember" xlink:title="definition: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to RestrictedStockMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_TitleOfIndividualAxis" xlink:label="TitleOfIndividualAxis" xlink:title="TitleOfIndividualAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfEarningsPerShareDilutedByCommonClassTable" xlink:to="TitleOfIndividualAxis" xlink:title="definition: ScheduleOfEarningsPerShareDilutedByCommonClassTable to TitleOfIndividualAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="TitleOfIndividualWithRelationshipToEntityDomain" xlink:title="TitleOfIndividualWithRelationshipToEntityDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="TitleOfIndividualAxis" xlink:to="TitleOfIndividualWithRelationshipToEntityDomain" xlink:title="definition: TitleOfIndividualAxis to TitleOfIndividualWithRelationshipToEntityDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="TitleOfIndividualWithRelationshipToEntityDomain_2" xlink:title="TitleOfIndividualWithRelationshipToEntityDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="TitleOfIndividualAxis" xlink:to="TitleOfIndividualWithRelationshipToEntityDomain_2" xlink:title="definition: TitleOfIndividualAxis to TitleOfIndividualWithRelationshipToEntityDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_DirectorMember" xlink:label="DirectorMember" xlink:title="DirectorMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="DirectorMember" xlink:title="definition: TitleOfIndividualWithRelationshipToEntityDomain to DirectorMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedPaymentArrangementEmployeeMember" xlink:label="ShareBasedPaymentArrangementEmployeeMember" xlink:title="ShareBasedPaymentArrangementEmployeeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="ShareBasedPaymentArrangementEmployeeMember" xlink:title="definition: TitleOfIndividualWithRelationshipToEntityDomain to ShareBasedPaymentArrangementEmployeeMember" order="2.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tandyleather.com/role/ShareRepurchaseProgramAndShareRepurchasesDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityClassOfTreasuryStockLineItems" xlink:label="EquityClassOfTreasuryStockLineItems" xlink:title="EquityClassOfTreasuryStockLineItems" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_StockRepurchaseProgramAbstract" xlink:label="StockRepurchaseProgramAbstract" xlink:title="StockRepurchaseProgramAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EquityClassOfTreasuryStockLineItems" xlink:to="StockRepurchaseProgramAbstract" xlink:title="definition: EquityClassOfTreasuryStockLineItems to StockRepurchaseProgramAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchaseProgramAuthorizedAmount1" xlink:label="StockRepurchaseProgramAuthorizedAmount1" xlink:title="StockRepurchaseProgramAuthorizedAmount1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EquityClassOfTreasuryStockLineItems" xlink:to="StockRepurchaseProgramAuthorizedAmount1" xlink:title="definition: EquityClassOfTreasuryStockLineItems to StockRepurchaseProgramAuthorizedAmount1" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:label="StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:title="StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EquityClassOfTreasuryStockLineItems" xlink:to="StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:title="definition: EquityClassOfTreasuryStockLineItems to StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfTreasuryStockTable" xlink:label="ClassOfTreasuryStockTable" xlink:title="ClassOfTreasuryStockTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="EquityClassOfTreasuryStockLineItems" xlink:to="ClassOfTreasuryStockTable" xlink:title="definition: EquityClassOfTreasuryStockLineItems to ClassOfTreasuryStockTable" order="4.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ClassOfTreasuryStockTable" xlink:to="RangeAxis" xlink:title="definition: ClassOfTreasuryStockTable to RangeAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="RangeAxis" xlink:to="RangeMember" xlink:title="definition: RangeAxis to RangeMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="RangeMember_2" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="RangeAxis" xlink:to="RangeMember_2" xlink:title="definition: RangeAxis to RangeMember_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember" xlink:label="MaximumMember" xlink:title="MaximumMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RangeMember" xlink:to="MaximumMember" xlink:title="definition: RangeMember to MaximumMember" order="1.0" />
  </link:definitionLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>7
<FILENAME>tlfa-20240331_lab.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION LABEL LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii"?>
<!--Generated by Broadridge PROfile 24.3.1.5224 Broadridge-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrli="http://www.xbrl.org/2003/instance">
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/netLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedNetLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedNetLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodEndLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodEndLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodStartLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodStartLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel" />
  <link:labelLink xlink:type="extended" xlink:role="http://www.xbrl.org/2003/role/link">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="AccountsReceivableNetCurrent" xlink:title="AccountsReceivableNetCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccountsReceivableNetCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccountsReceivableNetCurrent" xml:lang="en-US" id="us-gaap_AccountsReceivableNetCurrent">Accounts receivable-trade, net of allowance of $31 at March 31, 2024 and December 31, 2023, respectively</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccountsReceivableNetCurrent" xlink:to="us-gaap_AccountsReceivableNetCurrent" xlink:title="label: AccountsReceivableNetCurrent to us-gaap_AccountsReceivableNetCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:title="AccumulatedOtherComprehensiveIncomeLossNetOfTax" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xml:lang="en-US" id="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax">Accumulated other comprehensive loss, net of tax</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:title="label: AccumulatedOtherComprehensiveIncomeLossNetOfTax to us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:title="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:title="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xml:lang="en-US" id="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment">Less accumulated depreciation</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:title="label: AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment to us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl1" xml:lang="en-US" id="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl1">Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl1" xlink:title="label: AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment to us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="AdditionalPaidInCapital" xlink:title="AdditionalPaidInCapital" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AdditionalPaidInCapital" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AdditionalPaidInCapital" xml:lang="en-US" id="us-gaap_AdditionalPaidInCapital">Paid-in capital</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AdditionalPaidInCapital" xlink:to="us-gaap_AdditionalPaidInCapital" xlink:title="label: AdditionalPaidInCapital to us-gaap_AdditionalPaidInCapital" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="AllowanceForDoubtfulAccountsReceivableCurrent" xlink:title="AllowanceForDoubtfulAccountsReceivableCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xml:lang="en-US" id="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent">Allowance</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AllowanceForDoubtfulAccountsReceivableCurrent" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:title="label: AllowanceForDoubtfulAccountsReceivableCurrent to us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="AmortizationOfIntangibleAssets" xlink:title="AmortizationOfIntangibleAssets" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AmortizationOfIntangibleAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AmortizationOfIntangibleAssets" xml:lang="en-US" id="us-gaap_AmortizationOfIntangibleAssets">Amortization expenses</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AmortizationOfIntangibleAssets" xlink:to="us-gaap_AmortizationOfIntangibleAssets" xlink:title="label: AmortizationOfIntangibleAssets to us-gaap_AmortizationOfIntangibleAssets" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockMember" xlink:label="RestrictedStockMember" xlink:title="RestrictedStockMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RestrictedStockMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RestrictedStockMember" xml:lang="en-US" id="us-gaap_RestrictedStockMember">Restricted Stock [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RestrictedStockMember" xlink:to="us-gaap_RestrictedStockMember" xlink:title="label: RestrictedStockMember to us-gaap_RestrictedStockMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="StatementOfFinancialPositionAbstract" xlink:title="StatementOfFinancialPositionAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StatementOfFinancialPositionAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StatementOfFinancialPositionAbstract" xml:lang="en-US" id="us-gaap_StatementOfFinancialPositionAbstract">Condensed Consolidated Balance Sheets [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementOfFinancialPositionAbstract" xlink:title="label: StatementOfFinancialPositionAbstract to us-gaap_StatementOfFinancialPositionAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareBasic" xlink:label="EarningsPerShareBasic" xlink:title="EarningsPerShareBasic" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareBasic" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EarningsPerShareBasic" xml:lang="en-US" id="us-gaap_EarningsPerShareBasic">Basic (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareBasic" xlink:to="us-gaap_EarningsPerShareBasic" xlink:title="label: EarningsPerShareBasic to us-gaap_EarningsPerShareBasic" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareBasic1" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_EarningsPerShareBasic1" xml:lang="en-US" id="us-gaap_EarningsPerShareBasic1">Basic earnings per share (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareBasic" xlink:to="us-gaap_EarningsPerShareBasic1" xlink:title="label: EarningsPerShareBasic to us-gaap_EarningsPerShareBasic1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="CashAndCashEquivalentsAtCarryingValue" xlink:title="CashAndCashEquivalentsAtCarryingValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_CashAndCashEquivalentsAtCarryingValue" xml:lang="en-US" id="us-gaap_CashAndCashEquivalentsAtCarryingValue">Cash and cash equivalents</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashAndCashEquivalentsAtCarryingValue" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:title="label: CashAndCashEquivalentsAtCarryingValue to us-gaap_CashAndCashEquivalentsAtCarryingValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl1" xml:lang="en-US" id="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl1">Cash and Cash Equivalents, at Carrying Value</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashAndCashEquivalentsAtCarryingValue" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl1" xlink:title="label: CashAndCashEquivalentsAtCarryingValue to us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="CashAndCashEquivalentsPolicyTextBlock" xlink:title="CashAndCashEquivalentsPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xml:lang="en-US" id="us-gaap_CashAndCashEquivalentsPolicyTextBlock">Cash and cash equivalents</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashAndCashEquivalentsPolicyTextBlock" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:title="label: CashAndCashEquivalentsPolicyTextBlock to us-gaap_CashAndCashEquivalentsPolicyTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="IncreaseDecreaseInAccountsReceivable" xlink:title="IncreaseDecreaseInAccountsReceivable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_IncreaseDecreaseInAccountsReceivable" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInAccountsReceivable">Accounts receivable-trade</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInAccountsReceivable" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:title="label: IncreaseDecreaseInAccountsReceivable to us-gaap_IncreaseDecreaseInAccountsReceivable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl1" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl1">Increase (Decrease) in Accounts Receivable</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInAccountsReceivable" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl1" xlink:title="label: IncreaseDecreaseInAccountsReceivable to us-gaap_IncreaseDecreaseInAccountsReceivable_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="IncreaseDecreaseInInventories" xlink:title="IncreaseDecreaseInInventories" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInInventories" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_IncreaseDecreaseInInventories" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInInventories">Inventory</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInInventories" xlink:to="us-gaap_IncreaseDecreaseInInventories" xlink:title="label: IncreaseDecreaseInInventories to us-gaap_IncreaseDecreaseInInventories" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInInventories_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInInventories_lbl1" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInInventories_lbl1">Increase (Decrease) in Inventories</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInInventories" xlink:to="us-gaap_IncreaseDecreaseInInventories_lbl1" xlink:title="label: IncreaseDecreaseInInventories to us-gaap_IncreaseDecreaseInInventories_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:label="IncreaseDecreaseInPrepaidExpense" xlink:title="IncreaseDecreaseInPrepaidExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_IncreaseDecreaseInPrepaidExpense" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInPrepaidExpense">Prepaid expenses</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInPrepaidExpense" xlink:to="us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:title="label: IncreaseDecreaseInPrepaidExpense to us-gaap_IncreaseDecreaseInPrepaidExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInPrepaidExpense_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInPrepaidExpense_lbl1" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInPrepaidExpense_lbl1">Increase (Decrease) in Prepaid Expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInPrepaidExpense" xlink:to="us-gaap_IncreaseDecreaseInPrepaidExpense_lbl1" xlink:title="label: IncreaseDecreaseInPrepaidExpense to us-gaap_IncreaseDecreaseInPrepaidExpense_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="IncreaseDecreaseInOperatingCapitalAbstract" xlink:title="IncreaseDecreaseInOperatingCapitalAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract">Changes in operating assets and liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:title="label: IncreaseDecreaseInOperatingCapitalAbstract to us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="IncreaseDecreaseInAccountsPayable" xlink:title="IncreaseDecreaseInAccountsPayable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_IncreaseDecreaseInAccountsPayable" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInAccountsPayable">Accounts payable-trade</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInAccountsPayable" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:title="label: IncreaseDecreaseInAccountsPayable to us-gaap_IncreaseDecreaseInAccountsPayable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInAccountsPayable_lbl1" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInAccountsPayable_lbl1">Increase (Decrease) in Accounts Payable</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInAccountsPayable" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable_lbl1" xlink:title="label: IncreaseDecreaseInAccountsPayable to us-gaap_IncreaseDecreaseInAccountsPayable_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="IncreaseDecreaseInAccruedLiabilities" xlink:title="IncreaseDecreaseInAccruedLiabilities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_IncreaseDecreaseInAccruedLiabilities" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInAccruedLiabilities">Accrued expenses and other liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInAccruedLiabilities" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:title="label: IncreaseDecreaseInAccruedLiabilities to us-gaap_IncreaseDecreaseInAccruedLiabilities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInAccruedLiabilities_lbl1" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInAccruedLiabilities_lbl1">Increase (Decrease) in Accrued Liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInAccruedLiabilities" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilities_lbl1" xlink:title="label: IncreaseDecreaseInAccruedLiabilities to us-gaap_IncreaseDecreaseInAccruedLiabilities_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="CommitmentsAndContingenciesDisclosureTextBlock" xlink:title="CommitmentsAndContingenciesDisclosureTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xml:lang="en-US" id="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock">COMMITMENTS AND CONTINGENCIES</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommitmentsAndContingenciesDisclosureTextBlock" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:title="label: CommitmentsAndContingenciesDisclosureTextBlock to us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl1" xml:lang="en-US" id="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl1">Commitments and Contingencies Disclosure [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommitmentsAndContingenciesDisclosureTextBlock" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl1" xlink:title="label: CommitmentsAndContingenciesDisclosureTextBlock to us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="CommonStockSharesAuthorized" xlink:title="CommonStockSharesAuthorized" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommonStockSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CommonStockSharesAuthorized" xml:lang="en-US" id="us-gaap_CommonStockSharesAuthorized">Common stock, shares authorized (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommonStockSharesAuthorized" xlink:to="us-gaap_CommonStockSharesAuthorized" xlink:title="label: CommonStockSharesAuthorized to us-gaap_CommonStockSharesAuthorized" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesIssued" xlink:label="CommonStockSharesIssued" xlink:title="CommonStockSharesIssued" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommonStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CommonStockSharesIssued" xml:lang="en-US" id="us-gaap_CommonStockSharesIssued">Common stock, shares issued (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommonStockSharesIssued" xlink:to="us-gaap_CommonStockSharesIssued" xlink:title="label: CommonStockSharesIssued to us-gaap_CommonStockSharesIssued" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="CommonStockSharesOutstanding" xlink:title="CommonStockSharesOutstanding" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommonStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CommonStockSharesOutstanding" xml:lang="en-US" id="us-gaap_CommonStockSharesOutstanding">Common stock, shares outstanding (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommonStockSharesOutstanding" xlink:to="us-gaap_CommonStockSharesOutstanding" xlink:title="label: CommonStockSharesOutstanding to us-gaap_CommonStockSharesOutstanding" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockValue" xlink:label="CommonStockValue" xlink:title="CommonStockValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommonStockValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CommonStockValue" xml:lang="en-US" id="us-gaap_CommonStockValue">Common stock, $0.0024 par value; 25,000,000 shares authorized; 9,826,348 and 9,823,621 shares issued at March 31, 2024 and December 31, 2023, respectively; 8,401,972 and 8,399,245 shares outstanding at March 31, 2024 and December 31, 2023, respectively</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommonStockValue" xlink:to="us-gaap_CommonStockValue" xlink:title="label: CommonStockValue to us-gaap_CommonStockValue" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="ConcentrationRiskByTypeAxis" xlink:title="ConcentrationRiskByTypeAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ConcentrationRiskByTypeAxis" xml:lang="en-US" id="us-gaap_ConcentrationRiskByTypeAxis">Concentration Risk Type [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskByTypeAxis" xlink:title="label: ConcentrationRiskByTypeAxis to us-gaap_ConcentrationRiskByTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="ConcentrationRiskTypeDomain" xlink:title="ConcentrationRiskTypeDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskTypeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ConcentrationRiskTypeDomain" xml:lang="en-US" id="us-gaap_ConcentrationRiskTypeDomain">Concentration Risk Type [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConcentrationRiskTypeDomain" xlink:to="us-gaap_ConcentrationRiskTypeDomain" xlink:title="label: ConcentrationRiskTypeDomain to us-gaap_ConcentrationRiskTypeDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="CostOfGoodsAndServicesSold" xlink:title="CostOfGoodsAndServicesSold" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CostOfGoodsAndServicesSold" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CostOfGoodsAndServicesSold" xml:lang="en-US" id="us-gaap_CostOfGoodsAndServicesSold">Cost of sales</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CostOfGoodsAndServicesSold" xlink:to="us-gaap_CostOfGoodsAndServicesSold" xlink:title="label: CostOfGoodsAndServicesSold to us-gaap_CostOfGoodsAndServicesSold" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostOfGoodsAndServicesSoldDepreciation" xlink:label="CostOfGoodsAndServicesSoldDepreciation" xlink:title="CostOfGoodsAndServicesSoldDepreciation" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CostOfGoodsAndServicesSoldDepreciation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CostOfGoodsAndServicesSoldDepreciation" xml:lang="en-US" id="us-gaap_CostOfGoodsAndServicesSoldDepreciation">Depreciation and amortization</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CostOfGoodsAndServicesSoldDepreciation" xlink:to="us-gaap_CostOfGoodsAndServicesSoldDepreciation" xlink:title="label: CostOfGoodsAndServicesSoldDepreciation to us-gaap_CostOfGoodsAndServicesSoldDepreciation" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesCurrent" xlink:label="LiabilitiesCurrent" xlink:title="LiabilitiesCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_LiabilitiesCurrent" xml:lang="en-US" id="us-gaap_LiabilitiesCurrent">Total current liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LiabilitiesCurrent" xlink:to="us-gaap_LiabilitiesCurrent" xlink:title="label: LiabilitiesCurrent to us-gaap_LiabilitiesCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LiabilitiesCurrent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LiabilitiesCurrent_lbl1" xml:lang="en-US" id="us-gaap_LiabilitiesCurrent_lbl1">Liabilities, Current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LiabilitiesCurrent" xlink:to="us-gaap_LiabilitiesCurrent_lbl1" xlink:title="label: LiabilitiesCurrent to us-gaap_LiabilitiesCurrent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="LiabilitiesCurrentAbstract" xlink:title="LiabilitiesCurrentAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LiabilitiesCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LiabilitiesCurrentAbstract" xml:lang="en-US" id="us-gaap_LiabilitiesCurrentAbstract">CURRENT LIABILITIES:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrentAbstract" xlink:title="label: LiabilitiesCurrentAbstract to us-gaap_LiabilitiesCurrentAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="DebtDisclosureTextBlock" xlink:title="DebtDisclosureTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DebtDisclosureTextBlock" xml:lang="en-US" id="us-gaap_DebtDisclosureTextBlock">NOTES PAYABLE AND LONG-TERM DEBT</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtDisclosureTextBlock" xlink:to="us-gaap_DebtDisclosureTextBlock" xlink:title="label: DebtDisclosureTextBlock to us-gaap_DebtDisclosureTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentsAbstract" xlink:label="DebtInstrumentsAbstract" xlink:title="DebtInstrumentsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtInstrumentsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DebtInstrumentsAbstract" xml:lang="en-US" id="us-gaap_DebtInstrumentsAbstract">Debt Instruments [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentsAbstract" xlink:to="us-gaap_DebtInstrumentsAbstract" xlink:title="label: DebtInstrumentsAbstract to us-gaap_DebtInstrumentsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="DebtInstrumentLineItems" xlink:title="DebtInstrumentLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtInstrumentLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DebtInstrumentLineItems" xml:lang="en-US" id="us-gaap_DebtInstrumentLineItems">Debt Instrument [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentLineItems" xlink:title="label: DebtInstrumentLineItems to us-gaap_DebtInstrumentLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentTable" xlink:label="DebtInstrumentTable" xlink:title="DebtInstrumentTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtInstrumentTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DebtInstrumentTable" xml:lang="en-US" id="us-gaap_DebtInstrumentTable">Schedule of Long-term Debt Instruments [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentTable" xlink:to="us-gaap_DebtInstrumentTable" xlink:title="label: DebtInstrumentTable to us-gaap_DebtInstrumentTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="EarningsPerShareDiluted" xlink:title="EarningsPerShareDiluted" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareDiluted" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EarningsPerShareDiluted" xml:lang="en-US" id="us-gaap_EarningsPerShareDiluted">Diluted (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareDiluted" xlink:to="us-gaap_EarningsPerShareDiluted" xlink:title="label: EarningsPerShareDiluted to us-gaap_EarningsPerShareDiluted" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareDiluted1" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_EarningsPerShareDiluted1" xml:lang="en-US" id="us-gaap_EarningsPerShareDiluted1">Diluted earnings per share (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareDiluted" xlink:to="us-gaap_EarningsPerShareDiluted1" xlink:title="label: EarningsPerShareDiluted to us-gaap_EarningsPerShareDiluted1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="EffectiveIncomeTaxRateContinuingOperations" xlink:title="EffectiveIncomeTaxRateContinuingOperations" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateContinuingOperations">Effective tax rate</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateContinuingOperations" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:title="label: EffectiveIncomeTaxRateContinuingOperations to us-gaap_EffectiveIncomeTaxRateContinuingOperations" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="AllocatedShareBasedCompensationExpense" xlink:title="AllocatedShareBasedCompensationExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_AllocatedShareBasedCompensationExpense" xml:lang="en-US" id="us-gaap_AllocatedShareBasedCompensationExpense">Stock-based compensation expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AllocatedShareBasedCompensationExpense" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense" xlink:title="label: AllocatedShareBasedCompensationExpense to us-gaap_AllocatedShareBasedCompensationExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AllocatedShareBasedCompensationExpense_lbl1" xml:lang="en-US" id="us-gaap_AllocatedShareBasedCompensationExpense_lbl1">Share-Based Payment Arrangement, Expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AllocatedShareBasedCompensationExpense" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense_lbl1" xlink:title="label: AllocatedShareBasedCompensationExpense to us-gaap_AllocatedShareBasedCompensationExpense_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensation" xlink:label="ShareBasedCompensation" xlink:title="ShareBasedCompensation" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensation" xml:lang="en-US" id="us-gaap_ShareBasedCompensation">Stock-based compensation</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensation" xlink:to="us-gaap_ShareBasedCompensation" xlink:title="label: ShareBasedCompensation to us-gaap_ShareBasedCompensation" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensation_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensation_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensation_lbl1">Share-Based Payment Arrangement, Noncash Expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensation" xlink:to="us-gaap_ShareBasedCompensation_lbl1" xlink:title="label: ShareBasedCompensation to us-gaap_ShareBasedCompensation_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationAbstract" xlink:label="ShareBasedCompensationAbstract" xlink:title="ShareBasedCompensationAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationAbstract" xml:lang="en-US" id="us-gaap_ShareBasedCompensationAbstract">Share-based Compensation Expense [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationAbstract" xlink:to="us-gaap_ShareBasedCompensationAbstract" xlink:title="label: ShareBasedCompensationAbstract to us-gaap_ShareBasedCompensationAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationAbstract_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationAbstract_lbl1">Share-Based Payment Arrangement, Noncash Expense [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationAbstract" xlink:to="us-gaap_ShareBasedCompensationAbstract_lbl1" xlink:title="label: ShareBasedCompensationAbstract to us-gaap_ShareBasedCompensationAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:label="FairValueOfFinancialInstrumentsPolicy" xlink:title="FairValueOfFinancialInstrumentsPolicy" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FairValueOfFinancialInstrumentsPolicy" xml:lang="en-US" id="us-gaap_FairValueOfFinancialInstrumentsPolicy">Fair Value of Financial Instruments</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FairValueOfFinancialInstrumentsPolicy" xlink:to="us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:title="label: FairValueOfFinancialInstrumentsPolicy to us-gaap_FairValueOfFinancialInstrumentsPolicy" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:title="FiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain">Finite-Lived Intangible Assets, Major Class Name [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:title="label: FiniteLivedIntangibleAssetsMajorClassNameDomain to us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:title="FiniteLivedIntangibleAssetsByMajorClassAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis">Finite-Lived Intangible Assets by Major Class [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:title="label: FiniteLivedIntangibleAssetsByMajorClassAxis to us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="FiniteLivedIntangibleAssetsLineItems" xlink:title="FiniteLivedIntangibleAssetsLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FiniteLivedIntangibleAssetsLineItems" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsLineItems">Finite-Lived Intangible Assets [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:title="label: FiniteLivedIntangibleAssetsLineItems to us-gaap_FiniteLivedIntangibleAssetsLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:label="ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:title="ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xml:lang="en-US" id="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock">Foreign currency translation and transactions</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:to="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:title="label: ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock to us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="FurnitureAndFixturesMember" xlink:title="FurnitureAndFixturesMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FurnitureAndFixturesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FurnitureAndFixturesMember" xml:lang="en-US" id="us-gaap_FurnitureAndFixturesMember">Furniture and Fixtures [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FurnitureAndFixturesMember" xlink:to="us-gaap_FurnitureAndFixturesMember" xlink:title="label: FurnitureAndFixturesMember to us-gaap_FurnitureAndFixturesMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GeographicConcentrationRiskMember" xlink:label="GeographicConcentrationRiskMember" xlink:title="GeographicConcentrationRiskMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GeographicConcentrationRiskMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_GeographicConcentrationRiskMember" xml:lang="en-US" id="us-gaap_GeographicConcentrationRiskMember">Geographic Concentration Risk [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GeographicConcentrationRiskMember" xlink:to="us-gaap_GeographicConcentrationRiskMember" xlink:title="label: GeographicConcentrationRiskMember to us-gaap_GeographicConcentrationRiskMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntangibleAssetsFiniteLivedPolicy" xlink:label="IntangibleAssetsFiniteLivedPolicy" xlink:title="IntangibleAssetsFiniteLivedPolicy" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IntangibleAssetsFiniteLivedPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IntangibleAssetsFiniteLivedPolicy" xml:lang="en-US" id="us-gaap_IntangibleAssetsFiniteLivedPolicy">Other Intangibles Assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IntangibleAssetsFiniteLivedPolicy" xlink:to="us-gaap_IntangibleAssetsFiniteLivedPolicy" xlink:title="label: IntangibleAssetsFiniteLivedPolicy to us-gaap_IntangibleAssetsFiniteLivedPolicy" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GrossProfit" xlink:label="GrossProfit" xlink:title="GrossProfit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GrossProfit" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_GrossProfit" xml:lang="en-US" id="us-gaap_GrossProfit">Gross profit</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GrossProfit" xlink:to="us-gaap_GrossProfit" xlink:title="label: GrossProfit to us-gaap_GrossProfit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GrossProfit_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_GrossProfit_lbl1" xml:lang="en-US" id="us-gaap_GrossProfit_lbl1">Gross Profit</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GrossProfit" xlink:to="us-gaap_GrossProfit_lbl1" xlink:title="label: GrossProfit to us-gaap_GrossProfit_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" xlink:label="ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" xlink:title="ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" xml:lang="en-US" id="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock">Impairment of Long-Lived Assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" xlink:to="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" xlink:title="label: ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock to us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock_lbl1" xml:lang="en-US" id="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock_lbl1">Impairment or Disposal of Long-Lived Assets, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" xlink:to="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock_lbl1" xlink:title="label: ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock to us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementAbstract" xlink:label="IncomeStatementAbstract" xlink:title="IncomeStatementAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeStatementAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeStatementAbstract" xml:lang="en-US" id="us-gaap_IncomeStatementAbstract">Condensed Consolidated Statements of Operations and Comprehensive Income [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeStatementAbstract" xlink:to="us-gaap_IncomeStatementAbstract" xlink:title="label: IncomeStatementAbstract to us-gaap_IncomeStatementAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="IncomeTaxDisclosureTextBlock" xlink:title="IncomeTaxDisclosureTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeTaxDisclosureTextBlock" xml:lang="en-US" id="us-gaap_IncomeTaxDisclosureTextBlock">INCOME TAX</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxDisclosureTextBlock" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock" xlink:title="label: IncomeTaxDisclosureTextBlock to us-gaap_IncomeTaxDisclosureTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="IncomeTaxPolicyTextBlock" xlink:title="IncomeTaxPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeTaxPolicyTextBlock" xml:lang="en-US" id="us-gaap_IncomeTaxPolicyTextBlock">Income Taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxPolicyTextBlock" xlink:to="us-gaap_IncomeTaxPolicyTextBlock" xlink:title="label: IncomeTaxPolicyTextBlock to us-gaap_IncomeTaxPolicyTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxesReceivable" xlink:label="IncomeTaxesReceivable" xlink:title="IncomeTaxesReceivable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxesReceivable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeTaxesReceivable" xml:lang="en-US" id="us-gaap_IncomeTaxesReceivable">Income tax receivable</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxesReceivable" xlink:to="us-gaap_IncomeTaxesReceivable" xlink:title="label: IncomeTaxesReceivable to us-gaap_IncomeTaxesReceivable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:title="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xml:lang="en-US" id="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements">Dilutive effect of service-based restricted stock awards granted under the Plans (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:title="label: IncrementalCommonSharesAttributableToShareBasedPaymentArrangements to us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl1" xml:lang="en-US" id="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl1">Incremental Common Shares Attributable to Dilutive Effect of Share-Based Payment Arrangements</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl1" xlink:title="label: IncrementalCommonSharesAttributableToShareBasedPaymentArrangements to us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsNetAbstract" xlink:label="FiniteLivedIntangibleAssetsNetAbstract" xlink:title="FiniteLivedIntangibleAssetsNetAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNetAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FiniteLivedIntangibleAssetsNetAbstract" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsNetAbstract">Intangible Assets [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsNetAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNetAbstract" xlink:title="label: FiniteLivedIntangibleAssetsNetAbstract to us-gaap_FiniteLivedIntangibleAssetsNetAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryFinishedGoods" xlink:label="InventoryFinishedGoods" xlink:title="InventoryFinishedGoods" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InventoryFinishedGoods" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_InventoryFinishedGoods" xml:lang="en-US" id="us-gaap_InventoryFinishedGoods">Finished goods held for sale</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryFinishedGoods" xlink:to="us-gaap_InventoryFinishedGoods" xlink:title="label: InventoryFinishedGoods to us-gaap_InventoryFinishedGoods" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNet" xlink:label="InventoryNet" xlink:title="InventoryNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InventoryNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_InventoryNet" xml:lang="en-US" id="us-gaap_InventoryNet">Inventory</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryNet" xlink:to="us-gaap_InventoryNet" xlink:title="label: InventoryNet to us-gaap_InventoryNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InventoryNet1" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_InventoryNet1" xml:lang="en-US" id="us-gaap_InventoryNet1">Total inventory</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryNet" xlink:to="us-gaap_InventoryNet1" xlink:title="label: InventoryNet to us-gaap_InventoryNet1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNetAbstract" xlink:label="InventoryNetAbstract" xlink:title="InventoryNetAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InventoryNetAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_InventoryNetAbstract" xml:lang="en-US" id="us-gaap_InventoryNetAbstract">Inventory on hand [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryNetAbstract" xlink:to="us-gaap_InventoryNetAbstract" xlink:title="label: InventoryNetAbstract to us-gaap_InventoryNetAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherInventoryInTransit" xlink:label="OtherInventoryInTransit" xlink:title="OtherInventoryInTransit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OtherInventoryInTransit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OtherInventoryInTransit" xml:lang="en-US" id="us-gaap_OtherInventoryInTransit">Inventory in transit</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OtherInventoryInTransit" xlink:to="us-gaap_OtherInventoryInTransit" xlink:title="label: OtherInventoryInTransit to us-gaap_OtherInventoryInTransit" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="InventoryPolicyTextBlock" xlink:title="InventoryPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InventoryPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_InventoryPolicyTextBlock" xml:lang="en-US" id="us-gaap_InventoryPolicyTextBlock">Inventory</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryPolicyTextBlock" xlink:to="us-gaap_InventoryPolicyTextBlock" xlink:title="label: InventoryPolicyTextBlock to us-gaap_InventoryPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InventoryPolicyTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_InventoryPolicyTextBlock_lbl1" xml:lang="en-US" id="us-gaap_InventoryPolicyTextBlock_lbl1">Inventory, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryPolicyTextBlock" xlink:to="us-gaap_InventoryPolicyTextBlock_lbl1" xlink:title="label: InventoryPolicyTextBlock to us-gaap_InventoryPolicyTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="LiabilitiesAndStockholdersEquity" xlink:title="LiabilitiesAndStockholdersEquity" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_LiabilitiesAndStockholdersEquity" xml:lang="en-US" id="us-gaap_LiabilitiesAndStockholdersEquity">TOTAL LIABILITIES AND STOCKHOLDERS' EQUITY</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity" xlink:title="label: LiabilitiesAndStockholdersEquity to us-gaap_LiabilitiesAndStockholdersEquity" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LiabilitiesAndStockholdersEquity_lbl1" xml:lang="en-US" id="us-gaap_LiabilitiesAndStockholdersEquity_lbl1">Liabilities and Equity</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity_lbl1" xlink:title="label: LiabilitiesAndStockholdersEquity to us-gaap_LiabilitiesAndStockholdersEquity_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="LiabilitiesAndStockholdersEquityAbstract" xlink:title="LiabilitiesAndStockholdersEquityAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xml:lang="en-US" id="us-gaap_LiabilitiesAndStockholdersEquityAbstract">LIABILITIES AND STOCKHOLDERS' EQUITY</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:title="label: LiabilitiesAndStockholdersEquityAbstract to us-gaap_LiabilitiesAndStockholdersEquityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="LineOfCreditFacilityLenderDomain" xlink:title="LineOfCreditFacilityLenderDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LineOfCreditFacilityLenderDomain" xml:lang="en-US" id="us-gaap_LineOfCreditFacilityLenderDomain">Line of Credit Facility, Lender [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LineOfCreditFacilityLenderDomain" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain" xlink:title="label: LineOfCreditFacilityLenderDomain to us-gaap_LineOfCreditFacilityLenderDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="LineOfCreditFacilityMaximumBorrowingCapacity" xlink:title="LineOfCreditFacilityMaximumBorrowingCapacity" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xml:lang="en-US" id="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity">Line of credit facility, maximum borrowing capacity</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LineOfCreditFacilityMaximumBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:title="label: LineOfCreditFacilityMaximumBorrowingCapacity to us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="LineOfCreditFacilityAxis" xlink:title="LineOfCreditFacilityAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LineOfCreditFacilityAxis" xml:lang="en-US" id="us-gaap_LineOfCreditFacilityAxis">Lender Name [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityAxis" xlink:title="label: LineOfCreditFacilityAxis to us-gaap_LineOfCreditFacilityAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="MachineryAndEquipmentMember" xlink:title="MachineryAndEquipmentMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_MachineryAndEquipmentMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_MachineryAndEquipmentMember" xml:lang="en-US" id="us-gaap_MachineryAndEquipmentMember">Equipment and Machinery [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="MachineryAndEquipmentMember" xlink:to="us-gaap_MachineryAndEquipmentMember" xlink:title="label: MachineryAndEquipmentMember to us-gaap_MachineryAndEquipmentMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="NetCashProvidedByUsedInFinancingActivities" xlink:title="NetCashProvidedByUsedInFinancingActivities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_NetCashProvidedByUsedInFinancingActivities" xml:lang="en-US" id="us-gaap_NetCashProvidedByUsedInFinancingActivities">Net cash used in financing activities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:title="label: NetCashProvidedByUsedInFinancingActivities to us-gaap_NetCashProvidedByUsedInFinancingActivities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl1" xml:lang="en-US" id="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl1">Net Cash Provided by (Used in) Financing Activities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl1" xlink:title="label: NetCashProvidedByUsedInFinancingActivities to us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:title="NetCashProvidedByUsedInFinancingActivitiesAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xml:lang="en-US" id="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract">Cash flows from financing activities:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:title="label: NetCashProvidedByUsedInFinancingActivitiesAbstract to us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="NetCashProvidedByUsedInInvestingActivities" xlink:title="NetCashProvidedByUsedInInvestingActivities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_NetCashProvidedByUsedInInvestingActivities" xml:lang="en-US" id="us-gaap_NetCashProvidedByUsedInInvestingActivities">Net cash used in investing activities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:title="label: NetCashProvidedByUsedInInvestingActivities to us-gaap_NetCashProvidedByUsedInInvestingActivities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl1" xml:lang="en-US" id="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl1">Net Cash Provided by (Used in) Investing Activities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl1" xlink:title="label: NetCashProvidedByUsedInInvestingActivities to us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:title="NetCashProvidedByUsedInInvestingActivitiesAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xml:lang="en-US" id="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract">Cash flows from investing activities:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:title="label: NetCashProvidedByUsedInInvestingActivitiesAbstract to us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="NetCashProvidedByUsedInOperatingActivities" xlink:title="NetCashProvidedByUsedInOperatingActivities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_NetCashProvidedByUsedInOperatingActivities" xml:lang="en-US" id="us-gaap_NetCashProvidedByUsedInOperatingActivities">Net cash provided by operating activities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:title="label: NetCashProvidedByUsedInOperatingActivities to us-gaap_NetCashProvidedByUsedInOperatingActivities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl1" xml:lang="en-US" id="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl1">Net Cash Provided by (Used in) Operating Activities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl1" xlink:title="label: NetCashProvidedByUsedInOperatingActivities to us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:title="NetCashProvidedByUsedInOperatingActivitiesAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xml:lang="en-US" id="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract">Cash flows from operating activities:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:title="label: NetCashProvidedByUsedInOperatingActivitiesAbstract to us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_NetIncomeLoss" xml:lang="en-US" id="us-gaap_NetIncomeLoss">Net income</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss" xlink:title="label: NetIncomeLoss to us-gaap_NetIncomeLoss" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetIncomeLoss1" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_NetIncomeLoss1" xml:lang="en-US" id="us-gaap_NetIncomeLoss1">Net income</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss1" xlink:title="label: NetIncomeLoss to us-gaap_NetIncomeLoss1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetIncomeLoss2" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_NetIncomeLoss2" xml:lang="en-US" id="us-gaap_NetIncomeLoss2">Net income</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss2" xlink:title="label: NetIncomeLoss to us-gaap_NetIncomeLoss2" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetIncomeLoss_lbl3" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NetIncomeLoss_lbl3" xml:lang="en-US" id="us-gaap_NetIncomeLoss_lbl3">Net Income (Loss) Attributable to Parent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss_lbl3" xlink:title="label: NetIncomeLoss to us-gaap_NetIncomeLoss_lbl3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InterestIncomeExpenseNet" xlink:label="InterestIncomeExpenseNet" xlink:title="InterestIncomeExpenseNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InterestIncomeExpenseNet" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_InterestIncomeExpenseNet" xml:lang="en-US" id="us-gaap_InterestIncomeExpenseNet">Interest income</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InterestIncomeExpenseNet" xlink:to="us-gaap_InterestIncomeExpenseNet" xlink:title="label: InterestIncomeExpenseNet to us-gaap_InterestIncomeExpenseNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InterestIncomeExpenseNet_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_InterestIncomeExpenseNet_lbl1" xml:lang="en-US" id="us-gaap_InterestIncomeExpenseNet_lbl1">Interest Income (Expense), Net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InterestIncomeExpenseNet" xlink:to="us-gaap_InterestIncomeExpenseNet_lbl1" xlink:title="label: InterestIncomeExpenseNet to us-gaap_InterestIncomeExpenseNet_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NonoperatingIncomeExpense" xlink:label="NonoperatingIncomeExpense" xlink:title="NonoperatingIncomeExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NonoperatingIncomeExpense" xlink:role="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:title="us-gaap_NonoperatingIncomeExpense" xml:lang="en-US" id="us-gaap_NonoperatingIncomeExpense">Total other (income) expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NonoperatingIncomeExpense" xlink:to="us-gaap_NonoperatingIncomeExpense" xlink:title="label: NonoperatingIncomeExpense to us-gaap_NonoperatingIncomeExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NonoperatingIncomeExpense_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NonoperatingIncomeExpense_lbl1" xml:lang="en-US" id="us-gaap_NonoperatingIncomeExpense_lbl1">Nonoperating Income (Expense)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NonoperatingIncomeExpense" xlink:to="us-gaap_NonoperatingIncomeExpense_lbl1" xlink:title="label: NonoperatingIncomeExpense to us-gaap_NonoperatingIncomeExpense_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingIncomeLoss" xlink:label="OperatingIncomeLoss" xlink:title="OperatingIncomeLoss" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_OperatingIncomeLoss" xml:lang="en-US" id="us-gaap_OperatingIncomeLoss">Income from operations</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingIncomeLoss" xlink:to="us-gaap_OperatingIncomeLoss" xlink:title="label: OperatingIncomeLoss to us-gaap_OperatingIncomeLoss" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingIncomeLoss_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingIncomeLoss_lbl1" xml:lang="en-US" id="us-gaap_OperatingIncomeLoss_lbl1">Operating Income (Loss)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingIncomeLoss" xlink:to="us-gaap_OperatingIncomeLoss_lbl1" xlink:title="label: OperatingIncomeLoss to us-gaap_OperatingIncomeLoss_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingIncomeLossAbstract" xlink:label="OperatingIncomeLossAbstract" xlink:title="OperatingIncomeLossAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingIncomeLossAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingIncomeLossAbstract" xml:lang="en-US" id="us-gaap_OperatingIncomeLossAbstract">Other (income) expense:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingIncomeLossAbstract" xlink:to="us-gaap_OperatingIncomeLossAbstract" xlink:title="label: OperatingIncomeLossAbstract to us-gaap_OperatingIncomeLossAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAssetsCurrent" xlink:label="OtherAssetsCurrent" xlink:title="OtherAssetsCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OtherAssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OtherAssetsCurrent" xml:lang="en-US" id="us-gaap_OtherAssetsCurrent">Other current assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OtherAssetsCurrent" xlink:to="us-gaap_OtherAssetsCurrent" xlink:title="label: OtherAssetsCurrent to us-gaap_OtherAssetsCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="OtherNonoperatingIncomeExpense" xlink:title="OtherNonoperatingIncomeExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OtherNonoperatingIncomeExpense" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_OtherNonoperatingIncomeExpense" xml:lang="en-US" id="us-gaap_OtherNonoperatingIncomeExpense">Other, net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OtherNonoperatingIncomeExpense" xlink:to="us-gaap_OtherNonoperatingIncomeExpense" xlink:title="label: OtherNonoperatingIncomeExpense to us-gaap_OtherNonoperatingIncomeExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OtherNonoperatingIncomeExpense_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OtherNonoperatingIncomeExpense_lbl1" xml:lang="en-US" id="us-gaap_OtherNonoperatingIncomeExpense_lbl1">Other Nonoperating Income (Expense)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OtherNonoperatingIncomeExpense" xlink:to="us-gaap_OtherNonoperatingIncomeExpense_lbl1" xlink:title="label: OtherNonoperatingIncomeExpense to us-gaap_OtherNonoperatingIncomeExpense_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="PrepaidExpenseCurrent" xlink:title="PrepaidExpenseCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PrepaidExpenseCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PrepaidExpenseCurrent" xml:lang="en-US" id="us-gaap_PrepaidExpenseCurrent">Prepaid expenses</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PrepaidExpenseCurrent" xlink:to="us-gaap_PrepaidExpenseCurrent" xlink:title="label: PrepaidExpenseCurrent to us-gaap_PrepaidExpenseCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="ProceedsFromLinesOfCredit" xlink:title="ProceedsFromLinesOfCredit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ProceedsFromLinesOfCredit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ProceedsFromLinesOfCredit" xml:lang="en-US" id="us-gaap_ProceedsFromLinesOfCredit">Line of credit facility, funds borrowed</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ProceedsFromLinesOfCredit" xlink:to="us-gaap_ProceedsFromLinesOfCredit" xlink:title="label: ProceedsFromLinesOfCredit to us-gaap_ProceedsFromLinesOfCredit" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="PropertyPlantAndEquipmentGross" xlink:title="PropertyPlantAndEquipmentGross" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentGross" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentGross">Property and equipment, at cost</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentGross" xlink:to="us-gaap_PropertyPlantAndEquipmentGross" xlink:title="label: PropertyPlantAndEquipmentGross to us-gaap_PropertyPlantAndEquipmentGross" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="PropertyPlantAndEquipmentNet" xlink:title="PropertyPlantAndEquipmentNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_PropertyPlantAndEquipmentNet" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentNet">Property and equipment, net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" xlink:title="label: PropertyPlantAndEquipmentNet to us-gaap_PropertyPlantAndEquipmentNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentNet_lbl1" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentNet_lbl1">Property, Plant and Equipment, Net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_lbl1" xlink:title="label: PropertyPlantAndEquipmentNet to us-gaap_PropertyPlantAndEquipmentNet_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="PropertyPlantAndEquipmentPolicyTextBlock" xlink:title="PropertyPlantAndEquipmentPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock">Property and equipment, net of accumulated depreciation</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentPolicyTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:title="label: PropertyPlantAndEquipmentPolicyTextBlock to us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="PaymentsToAcquirePropertyPlantAndEquipment" xlink:title="PaymentsToAcquirePropertyPlantAndEquipment" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xml:lang="en-US" id="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment">Purchase of property and equipment</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PaymentsToAcquirePropertyPlantAndEquipment" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:title="label: PaymentsToAcquirePropertyPlantAndEquipment to us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl1" xml:lang="en-US" id="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl1">Payments to Acquire Property, Plant, and Equipment</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PaymentsToAcquirePropertyPlantAndEquipment" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl1" xlink:title="label: PaymentsToAcquirePropertyPlantAndEquipment to us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="RetainedEarningsAccumulatedDeficit" xlink:title="RetainedEarningsAccumulatedDeficit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RetainedEarningsAccumulatedDeficit" xml:lang="en-US" id="us-gaap_RetainedEarningsAccumulatedDeficit">Retained earnings</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RetainedEarningsAccumulatedDeficit" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:title="label: RetainedEarningsAccumulatedDeficit to us-gaap_RetainedEarningsAccumulatedDeficit" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="SegmentReportingInformationLineItems" xlink:title="SegmentReportingInformationLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SegmentReportingInformationLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SegmentReportingInformationLineItems" xml:lang="en-US" id="us-gaap_SegmentReportingInformationLineItems">Segment Reporting Information [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SegmentReportingInformationLineItems" xlink:to="us-gaap_SegmentReportingInformationLineItems" xlink:title="label: SegmentReportingInformationLineItems to us-gaap_SegmentReportingInformationLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="ScheduleOfSegmentReportingInformationBySegmentTable" xlink:title="ScheduleOfSegmentReportingInformationBySegmentTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xml:lang="en-US" id="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable">Schedule of Segment Reporting Information, by Segment [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:title="label: ScheduleOfSegmentReportingInformationBySegmentTable to us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod">Forfeited (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeited in Period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">Granted (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod1" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod1">Number of restricted stock units granted (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">Granted (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber">Balance (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber1" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber1">Balance (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_lbl2" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_lbl2">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_lbl2" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue">Balance (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue1" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue1">Balance (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl2" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl2">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl2" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:title="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xml:lang="en-US" id="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized">Unrecognized Expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:title="label: EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized to us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_lbl1" xml:lang="en-US" id="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_lbl1">Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_lbl1" xlink:title="label: EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized to us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod">Vested (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue">Vested (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain">Award Type [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="label: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xml:lang="en-US" id="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable">Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="label: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="StatementOfCashFlowsAbstract" xlink:title="StatementOfCashFlowsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StatementOfCashFlowsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StatementOfCashFlowsAbstract" xml:lang="en-US" id="us-gaap_StatementOfCashFlowsAbstract">Condensed Consolidated Statements of Cash Flows [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementOfCashFlowsAbstract" xlink:to="us-gaap_StatementOfCashFlowsAbstract" xlink:title="label: StatementOfCashFlowsAbstract to us-gaap_StatementOfCashFlowsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="StatementOfStockholdersEquityAbstract" xlink:title="StatementOfStockholdersEquityAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StatementOfStockholdersEquityAbstract" xml:lang="en-US" id="us-gaap_StatementOfStockholdersEquityAbstract">Condensed Consolidated Statements of Stockholders' Equity [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementOfStockholdersEquityAbstract" xlink:title="label: StatementOfStockholdersEquityAbstract to us-gaap_StatementOfStockholdersEquityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:title="ShareBasedCompensationOptionAndIncentivePlansPolicy" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xml:lang="en-US" id="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy">Stock-based compensation</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:to="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:title="label: ShareBasedCompensationOptionAndIncentivePlansPolicy to us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl1">Share-Based Payment Arrangement [Policy Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:to="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl1" xlink:title="label: ShareBasedCompensationOptionAndIncentivePlansPolicy to us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="StockholdersEquityAbstract" xlink:title="StockholdersEquityAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockholdersEquityAbstract" xml:lang="en-US" id="us-gaap_StockholdersEquityAbstract">STOCKHOLDERS' EQUITY:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquityAbstract" xlink:title="label: StockholdersEquityAbstract to us-gaap_StockholdersEquityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrent" xlink:label="AssetsCurrent" xlink:title="AssetsCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_AssetsCurrent" xml:lang="en-US" id="us-gaap_AssetsCurrent">Total current assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AssetsCurrent" xlink:to="us-gaap_AssetsCurrent" xlink:title="label: AssetsCurrent to us-gaap_AssetsCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AssetsCurrent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AssetsCurrent_lbl1" xml:lang="en-US" id="us-gaap_AssetsCurrent_lbl1">Assets, Current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AssetsCurrent" xlink:to="us-gaap_AssetsCurrent_lbl1" xlink:title="label: AssetsCurrent to us-gaap_AssetsCurrent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="AssetsCurrentAbstract" xlink:title="AssetsCurrentAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AssetsCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AssetsCurrentAbstract" xml:lang="en-US" id="us-gaap_AssetsCurrentAbstract">CURRENT ASSETS:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AssetsCurrentAbstract" xlink:to="us-gaap_AssetsCurrentAbstract" xlink:title="label: AssetsCurrentAbstract to us-gaap_AssetsCurrentAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VehiclesMember" xlink:label="VehiclesMember" xlink:title="VehiclesMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_VehiclesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_VehiclesMember" xml:lang="en-US" id="us-gaap_VehiclesMember">Vehicles [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="VehiclesMember" xlink:to="us-gaap_VehiclesMember" xlink:title="label: VehiclesMember to us-gaap_VehiclesMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:title="WeightedAverageNumberOfDilutedSharesOutstanding" />
    <link:label xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xml:lang="en-US" id="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding">Diluted (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:title="label: WeightedAverageNumberOfDilutedSharesOutstanding to us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" />
    <link:label xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding1" xml:lang="en-US" id="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding1">Diluted weighted-average common shares outstanding (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding1" xlink:title="label: WeightedAverageNumberOfDilutedSharesOutstanding to us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="WeightedAverageNumberOfSharesOutstandingBasic" xlink:title="WeightedAverageNumberOfSharesOutstandingBasic" />
    <link:label xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xml:lang="en-US" id="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic">Basic (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:title="label: WeightedAverageNumberOfSharesOutstandingBasic to us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" />
    <link:label xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic1" xml:lang="en-US" id="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic1">Basic weighted-average common shares outstanding (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic1" xlink:title="label: WeightedAverageNumberOfSharesOutstandingBasic to us-gaap_WeightedAverageNumberOfSharesOutstandingBasic1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryWorkInProcessAndRawMaterials" xlink:label="InventoryWorkInProcessAndRawMaterials" xlink:title="InventoryWorkInProcessAndRawMaterials" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InventoryWorkInProcessAndRawMaterials" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_InventoryWorkInProcessAndRawMaterials" xml:lang="en-US" id="us-gaap_InventoryWorkInProcessAndRawMaterials">Raw materials and work in process</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryWorkInProcessAndRawMaterials" xlink:to="us-gaap_InventoryWorkInProcessAndRawMaterials" xlink:title="label: InventoryWorkInProcessAndRawMaterials to us-gaap_InventoryWorkInProcessAndRawMaterials" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InventoryWorkInProcessAndRawMaterials_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_InventoryWorkInProcessAndRawMaterials_lbl1" xml:lang="en-US" id="us-gaap_InventoryWorkInProcessAndRawMaterials_lbl1">Inventory, Work in Process and Raw Materials</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryWorkInProcessAndRawMaterials" xlink:to="us-gaap_InventoryWorkInProcessAndRawMaterials_lbl1" xlink:title="label: InventoryWorkInProcessAndRawMaterials to us-gaap_InventoryWorkInProcessAndRawMaterials_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockMember" xlink:label="CommonStockMember" xlink:title="CommonStockMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommonStockMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CommonStockMember" xml:lang="en-US" id="us-gaap_CommonStockMember">Common Stock [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommonStockMember" xlink:to="us-gaap_CommonStockMember" xlink:title="label: CommonStockMember to us-gaap_CommonStockMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="PropertyPlantAndEquipmentTypeDomain" xlink:title="PropertyPlantAndEquipmentTypeDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentTypeDomain" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentTypeDomain">Long-Lived Tangible Asset [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:title="label: PropertyPlantAndEquipmentTypeDomain to us-gaap_PropertyPlantAndEquipmentTypeDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BuildingAndBuildingImprovementsMember" xlink:label="BuildingAndBuildingImprovementsMember" xlink:title="BuildingAndBuildingImprovementsMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_BuildingAndBuildingImprovementsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_BuildingAndBuildingImprovementsMember" xml:lang="en-US" id="us-gaap_BuildingAndBuildingImprovementsMember">Buildings and Related Improvements [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="BuildingAndBuildingImprovementsMember" xlink:to="us-gaap_BuildingAndBuildingImprovementsMember" xlink:title="label: BuildingAndBuildingImprovementsMember to us-gaap_BuildingAndBuildingImprovementsMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNetAbstract" xlink:label="PropertyPlantAndEquipmentNetAbstract" xlink:title="PropertyPlantAndEquipmentNetAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNetAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_PropertyPlantAndEquipmentNetAbstract" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentNetAbstract">Property and Equipment, Net of Accumulated Depreciation [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentNetAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentNetAbstract" xlink:title="label: PropertyPlantAndEquipmentNetAbstract to us-gaap_PropertyPlantAndEquipmentNetAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNetAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentNetAbstract_lbl1" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentNetAbstract_lbl1">Property, Plant and Equipment, Net [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentNetAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentNetAbstract_lbl1" xlink:title="label: PropertyPlantAndEquipmentNetAbstract to us-gaap_PropertyPlantAndEquipmentNetAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Assets" xlink:label="Assets" xlink:title="Assets" />
    <link:label xlink:type="resource" xlink:label="us-gaap_Assets" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_Assets" xml:lang="en-US" id="us-gaap_Assets">TOTAL ASSETS</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="Assets" xlink:to="us-gaap_Assets" xlink:title="label: Assets to us-gaap_Assets" />
    <link:label xlink:type="resource" xlink:label="us-gaap_Assets_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_Assets_lbl1" xml:lang="en-US" id="us-gaap_Assets_lbl1">Assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="Assets" xlink:to="us-gaap_Assets_lbl1" xlink:title="label: Assets to us-gaap_Assets_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:label="AllowanceForDoubtfulAccountsReceivable" xlink:title="AllowanceForDoubtfulAccountsReceivable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AllowanceForDoubtfulAccountsReceivable" xml:lang="en-US" id="us-gaap_AllowanceForDoubtfulAccountsReceivable">Allowance for expected credit losses</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AllowanceForDoubtfulAccountsReceivable" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:title="label: AllowanceForDoubtfulAccountsReceivable to us-gaap_AllowanceForDoubtfulAccountsReceivable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="OtherLiabilitiesNoncurrent" xlink:title="OtherLiabilitiesNoncurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OtherLiabilitiesNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OtherLiabilitiesNoncurrent" xml:lang="en-US" id="us-gaap_OtherLiabilitiesNoncurrent">Other non-current liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OtherLiabilitiesNoncurrent" xlink:to="us-gaap_OtherLiabilitiesNoncurrent" xlink:title="label: OtherLiabilitiesNoncurrent to us-gaap_OtherLiabilitiesNoncurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="ConcentrationRiskByBenchmarkAxis" xlink:title="ConcentrationRiskByBenchmarkAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ConcentrationRiskByBenchmarkAxis" xml:lang="en-US" id="us-gaap_ConcentrationRiskByBenchmarkAxis">Concentration Risk Benchmark [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:title="label: ConcentrationRiskByBenchmarkAxis to us-gaap_ConcentrationRiskByBenchmarkAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="ConcentrationRiskBenchmarkDomain" xlink:title="ConcentrationRiskBenchmarkDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ConcentrationRiskBenchmarkDomain" xml:lang="en-US" id="us-gaap_ConcentrationRiskBenchmarkDomain">Concentration Risk Benchmark [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConcentrationRiskBenchmarkDomain" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:title="label: ConcentrationRiskBenchmarkDomain to us-gaap_ConcentrationRiskBenchmarkDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:title="DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xml:lang="en-US" id="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock">STOCK-BASED COMPENSATION</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:title="label: DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock to us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable" xlink:label="StatementTable" xlink:title="StatementTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StatementTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StatementTable" xml:lang="en-US" id="us-gaap_StatementTable">Statement [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementTable" xlink:to="us-gaap_StatementTable" xlink:title="label: StatementTable to us-gaap_StatementTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsAbstract" xlink:label="AssetsAbstract" xlink:title="AssetsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AssetsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_AssetsAbstract" xml:lang="en-US" id="us-gaap_AssetsAbstract">ASSETS</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AssetsAbstract" xlink:to="us-gaap_AssetsAbstract" xlink:title="label: AssetsAbstract to us-gaap_AssetsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AssetsAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AssetsAbstract_lbl1" xml:lang="en-US" id="us-gaap_AssetsAbstract_lbl1">Assets [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AssetsAbstract" xlink:to="us-gaap_AssetsAbstract_lbl1" xlink:title="label: AssetsAbstract to us-gaap_AssetsAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems" xlink:label="StatementLineItems" xlink:title="StatementLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StatementLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StatementLineItems" xml:lang="en-US" id="us-gaap_StatementLineItems">Statement [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementLineItems" xlink:to="us-gaap_StatementLineItems" xlink:title="label: StatementLineItems to us-gaap_StatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract" xlink:label="NetIncomeLossAvailableToCommonStockholdersBasicAbstract" xlink:title="NetIncomeLossAvailableToCommonStockholdersBasicAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract" xml:lang="en-US" id="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract">Computation of Earnings Per Share [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetIncomeLossAvailableToCommonStockholdersBasicAbstract" xlink:to="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract" xlink:title="label: NetIncomeLossAvailableToCommonStockholdersBasicAbstract to us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract_lbl1" xml:lang="en-US" id="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract_lbl1">Net Income (Loss) Available to Common Stockholders, Basic [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetIncomeLossAvailableToCommonStockholdersBasicAbstract" xlink:to="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract_lbl1" xlink:title="label: NetIncomeLossAvailableToCommonStockholdersBasicAbstract to us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet" xlink:label="FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet" xlink:title="FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet" xml:lang="en-US" id="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet">Transfers into (out of) Level 3</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet" xlink:title="label: FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet to us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:label="IncreaseDecreaseInStockholdersEquityRollForward" xlink:title="IncreaseDecreaseInStockholdersEquityRollForward" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward">Increase (Decrease) in Stockholders' Equity [Roll Forward]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:title="label: IncreaseDecreaseInStockholdersEquityRollForward to us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfTreasuryStockTable" xlink:label="ClassOfTreasuryStockTable" xlink:title="ClassOfTreasuryStockTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ClassOfTreasuryStockTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ClassOfTreasuryStockTable" xml:lang="en-US" id="us-gaap_ClassOfTreasuryStockTable">Class of Treasury Stock [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ClassOfTreasuryStockTable" xlink:to="us-gaap_ClassOfTreasuryStockTable" xlink:title="label: ClassOfTreasuryStockTable to us-gaap_ClassOfTreasuryStockTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityClassOfTreasuryStockLineItems" xlink:label="EquityClassOfTreasuryStockLineItems" xlink:title="EquityClassOfTreasuryStockLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EquityClassOfTreasuryStockLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EquityClassOfTreasuryStockLineItems" xml:lang="en-US" id="us-gaap_EquityClassOfTreasuryStockLineItems">Equity, Class of Treasury Stock [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EquityClassOfTreasuryStockLineItems" xlink:to="us-gaap_EquityClassOfTreasuryStockLineItems" xlink:title="label: EquityClassOfTreasuryStockLineItems to us-gaap_EquityClassOfTreasuryStockLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInDeferredIncomeTaxes" xlink:label="IncreaseDecreaseInDeferredIncomeTaxes" xlink:title="IncreaseDecreaseInDeferredIncomeTaxes" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInDeferredIncomeTaxes" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_IncreaseDecreaseInDeferredIncomeTaxes" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInDeferredIncomeTaxes">Income taxes, net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInDeferredIncomeTaxes" xlink:to="us-gaap_IncreaseDecreaseInDeferredIncomeTaxes" xlink:title="label: IncreaseDecreaseInDeferredIncomeTaxes to us-gaap_IncreaseDecreaseInDeferredIncomeTaxes" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_lbl1" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_lbl1">Increase (Decrease) in Deferred Income Taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInDeferredIncomeTaxes" xlink:to="us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_lbl1" xlink:title="label: IncreaseDecreaseInDeferredIncomeTaxes to us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="OtherAssetsNoncurrent" xlink:title="OtherAssetsNoncurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OtherAssetsNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OtherAssetsNoncurrent" xml:lang="en-US" id="us-gaap_OtherAssetsNoncurrent">Other assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OtherAssetsNoncurrent" xlink:to="us-gaap_OtherAssetsNoncurrent" xlink:title="label: OtherAssetsNoncurrent to us-gaap_OtherAssetsNoncurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="EarningsPerShareAbstract" xlink:title="EarningsPerShareAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_EarningsPerShareAbstract" xml:lang="en-US" id="us-gaap_EarningsPerShareAbstract">Net income per common share:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareAbstract" xlink:title="label: EarningsPerShareAbstract to us-gaap_EarningsPerShareAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareAbstract1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EarningsPerShareAbstract1" xml:lang="en-US" id="us-gaap_EarningsPerShareAbstract1">EARNINGS PER SHARE [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareAbstract1" xlink:title="label: EarningsPerShareAbstract to us-gaap_EarningsPerShareAbstract1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEarningsPerShareDilutedByCommonClassTable" xlink:label="ScheduleOfEarningsPerShareDilutedByCommonClassTable" xlink:title="ScheduleOfEarningsPerShareDilutedByCommonClassTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfEarningsPerShareDilutedByCommonClassTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfEarningsPerShareDilutedByCommonClassTable" xml:lang="en-US" id="us-gaap_ScheduleOfEarningsPerShareDilutedByCommonClassTable">Schedule of Earnings Per Share, Diluted, by Common Class, Including Two Class Method [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfEarningsPerShareDilutedByCommonClassTable" xlink:to="us-gaap_ScheduleOfEarningsPerShareDilutedByCommonClassTable" xlink:title="label: ScheduleOfEarningsPerShareDilutedByCommonClassTable to us-gaap_ScheduleOfEarningsPerShareDilutedByCommonClassTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareDilutedLineItems" xlink:label="EarningsPerShareDilutedLineItems" xlink:title="EarningsPerShareDilutedLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareDilutedLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EarningsPerShareDilutedLineItems" xml:lang="en-US" id="us-gaap_EarningsPerShareDilutedLineItems">Earnings Per Share, Diluted, by Common Class, Including Two Class Method [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareDilutedLineItems" xlink:to="us-gaap_EarningsPerShareDilutedLineItems" xlink:title="label: EarningsPerShareDilutedLineItems to us-gaap_EarningsPerShareDilutedLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:label="ScheduleOfPropertyPlantAndEquipmentTable" xlink:title="ScheduleOfPropertyPlantAndEquipmentTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xml:lang="en-US" id="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable">Property, Plant and Equipment [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:title="label: ScheduleOfPropertyPlantAndEquipmentTable to us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="CommonStockParOrStatedValuePerShare" xlink:title="CommonStockParOrStatedValuePerShare" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CommonStockParOrStatedValuePerShare" xml:lang="en-US" id="us-gaap_CommonStockParOrStatedValuePerShare">Common stock, par value (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommonStockParOrStatedValuePerShare" xlink:to="us-gaap_CommonStockParOrStatedValuePerShare" xlink:title="label: CommonStockParOrStatedValuePerShare to us-gaap_CommonStockParOrStatedValuePerShare" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="PropertyPlantAndEquipmentByTypeAxis" xlink:title="PropertyPlantAndEquipmentByTypeAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentByTypeAxis">Long-Lived Tangible Asset [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:title="label: PropertyPlantAndEquipmentByTypeAxis to us-gaap_PropertyPlantAndEquipmentByTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentLineItems" xlink:label="PropertyPlantAndEquipmentLineItems" xlink:title="PropertyPlantAndEquipmentLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentLineItems" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentLineItems">Property, Plant and Equipment [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentLineItems" xlink:title="label: PropertyPlantAndEquipmentLineItems to us-gaap_PropertyPlantAndEquipmentLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:label="CommonStockCapitalSharesReservedForFutureIssuance" xlink:title="CommonStockCapitalSharesReservedForFutureIssuance" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xml:lang="en-US" id="us-gaap_CommonStockCapitalSharesReservedForFutureIssuance">Number of common shares reserved for issuance (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommonStockCapitalSharesReservedForFutureIssuance" xlink:to="us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:title="label: CommonStockCapitalSharesReservedForFutureIssuance to us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommonStockCapitalSharesReservedForFutureIssuance_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CommonStockCapitalSharesReservedForFutureIssuance_lbl1" xml:lang="en-US" id="us-gaap_CommonStockCapitalSharesReservedForFutureIssuance_lbl1">Common Stock, Capital Shares Reserved for Future Issuance</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommonStockCapitalSharesReservedForFutureIssuance" xlink:to="us-gaap_CommonStockCapitalSharesReservedForFutureIssuance_lbl1" xlink:title="label: CommonStockCapitalSharesReservedForFutureIssuance to us-gaap_CommonStockCapitalSharesReservedForFutureIssuance_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingCostsAndExpenses" xlink:label="OperatingCostsAndExpenses" xlink:title="OperatingCostsAndExpenses" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingCostsAndExpenses" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingCostsAndExpenses" xml:lang="en-US" id="us-gaap_OperatingCostsAndExpenses">Operating expenses</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingCostsAndExpenses" xlink:to="us-gaap_OperatingCostsAndExpenses" xlink:title="label: OperatingCostsAndExpenses to us-gaap_OperatingCostsAndExpenses" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity" xlink:label="StockholdersEquity" xlink:title="StockholdersEquity" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_StockholdersEquity" xml:lang="en-US" id="us-gaap_StockholdersEquity">Total stockholders' equity</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockholdersEquity" xlink:to="us-gaap_StockholdersEquity" xlink:title="label: StockholdersEquity to us-gaap_StockholdersEquity" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockholdersEquity1" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:title="us-gaap_StockholdersEquity1" xml:lang="en-US" id="us-gaap_StockholdersEquity1">Balance</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockholdersEquity" xlink:to="us-gaap_StockholdersEquity1" xlink:title="label: StockholdersEquity to us-gaap_StockholdersEquity1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockholdersEquity2" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:title="us-gaap_StockholdersEquity2" xml:lang="en-US" id="us-gaap_StockholdersEquity2">Balance</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockholdersEquity" xlink:to="us-gaap_StockholdersEquity2" xlink:title="label: StockholdersEquity to us-gaap_StockholdersEquity2" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockholdersEquity_lbl3" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockholdersEquity_lbl3" xml:lang="en-US" id="us-gaap_StockholdersEquity_lbl3">Equity, Attributable to Parent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_lbl3" xlink:title="label: StockholdersEquity to us-gaap_StockholdersEquity_lbl3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="IncomeTaxExpenseBenefit" xlink:title="IncomeTaxExpenseBenefit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_IncomeTaxExpenseBenefit" xml:lang="en-US" id="us-gaap_IncomeTaxExpenseBenefit">Income tax provision</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxExpenseBenefit" xlink:title="label: IncomeTaxExpenseBenefit to us-gaap_IncomeTaxExpenseBenefit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeTaxExpenseBenefit_lbl1" xml:lang="en-US" id="us-gaap_IncomeTaxExpenseBenefit_lbl1">Income Tax Expense (Benefit)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxExpenseBenefit_lbl1" xlink:title="label: IncomeTaxExpenseBenefit to us-gaap_IncomeTaxExpenseBenefit_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="StatementEquityComponentsAxis" xlink:title="StatementEquityComponentsAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StatementEquityComponentsAxis" xml:lang="en-US" id="us-gaap_StatementEquityComponentsAxis">Equity Components [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementEquityComponentsAxis" xlink:to="us-gaap_StatementEquityComponentsAxis" xlink:title="label: StatementEquityComponentsAxis to us-gaap_StatementEquityComponentsAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="AdditionalPaidInCapitalMember" xlink:title="AdditionalPaidInCapitalMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AdditionalPaidInCapitalMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AdditionalPaidInCapitalMember" xml:lang="en-US" id="us-gaap_AdditionalPaidInCapitalMember">Paid-in Capital [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AdditionalPaidInCapitalMember" xlink:to="us-gaap_AdditionalPaidInCapitalMember" xlink:title="label: AdditionalPaidInCapitalMember to us-gaap_AdditionalPaidInCapitalMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsMember" xlink:label="RetainedEarningsMember" xlink:title="RetainedEarningsMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RetainedEarningsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RetainedEarningsMember" xml:lang="en-US" id="us-gaap_RetainedEarningsMember">Retained Earnings [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RetainedEarningsMember" xlink:to="us-gaap_RetainedEarningsMember" xlink:title="label: RetainedEarningsMember to us-gaap_RetainedEarningsMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="AccumulatedOtherComprehensiveIncomeMember" xlink:title="AccumulatedOtherComprehensiveIncomeMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xml:lang="en-US" id="us-gaap_AccumulatedOtherComprehensiveIncomeMember">Accumulated Other Comprehensive Income (Loss) [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccumulatedOtherComprehensiveIncomeMember" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:title="label: AccumulatedOtherComprehensiveIncomeMember to us-gaap_AccumulatedOtherComprehensiveIncomeMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityComponentDomain" xlink:label="EquityComponentDomain" xlink:title="EquityComponentDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EquityComponentDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EquityComponentDomain" xml:lang="en-US" id="us-gaap_EquityComponentDomain">Equity Component [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EquityComponentDomain" xlink:to="us-gaap_EquityComponentDomain" xlink:title="label: EquityComponentDomain to us-gaap_EquityComponentDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SellingGeneralAndAdministrativeExpensesPolicyTextBlock" xlink:label="SellingGeneralAndAdministrativeExpensesPolicyTextBlock" xlink:title="SellingGeneralAndAdministrativeExpensesPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpensesPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_SellingGeneralAndAdministrativeExpensesPolicyTextBlock" xml:lang="en-US" id="us-gaap_SellingGeneralAndAdministrativeExpensesPolicyTextBlock">Operating expenses</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SellingGeneralAndAdministrativeExpensesPolicyTextBlock" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpensesPolicyTextBlock" xlink:title="label: SellingGeneralAndAdministrativeExpensesPolicyTextBlock to us-gaap_SellingGeneralAndAdministrativeExpensesPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpensesPolicyTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SellingGeneralAndAdministrativeExpensesPolicyTextBlock_lbl1" xml:lang="en-US" id="us-gaap_SellingGeneralAndAdministrativeExpensesPolicyTextBlock_lbl1">Selling, General and Administrative Expenses, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SellingGeneralAndAdministrativeExpensesPolicyTextBlock" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpensesPolicyTextBlock_lbl1" xlink:title="label: SellingGeneralAndAdministrativeExpensesPolicyTextBlock to us-gaap_SellingGeneralAndAdministrativeExpensesPolicyTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardGross" xlink:label="StockIssuedDuringPeriodValueRestrictedStockAwardGross" xlink:title="StockIssuedDuringPeriodValueRestrictedStockAwardGross" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardGross" xml:lang="en-US" id="us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardGross">Vesting of restricted stock units</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockIssuedDuringPeriodValueRestrictedStockAwardGross" xlink:to="us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardGross" xlink:title="label: StockIssuedDuringPeriodValueRestrictedStockAwardGross to us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardGross" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchasedAndRetiredDuringPeriodValue" xlink:label="StockRepurchasedAndRetiredDuringPeriodValue" xlink:title="StockRepurchasedAndRetiredDuringPeriodValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockRepurchasedAndRetiredDuringPeriodValue" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_StockRepurchasedAndRetiredDuringPeriodValue" xml:lang="en-US" id="us-gaap_StockRepurchasedAndRetiredDuringPeriodValue">Repurchase of common stock</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockRepurchasedAndRetiredDuringPeriodValue" xlink:to="us-gaap_StockRepurchasedAndRetiredDuringPeriodValue" xlink:title="label: StockRepurchasedAndRetiredDuringPeriodValue to us-gaap_StockRepurchasedAndRetiredDuringPeriodValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockRepurchasedAndRetiredDuringPeriodValue_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockRepurchasedAndRetiredDuringPeriodValue_lbl1" xml:lang="en-US" id="us-gaap_StockRepurchasedAndRetiredDuringPeriodValue_lbl1">Stock Repurchased and Retired During Period, Value</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockRepurchasedAndRetiredDuringPeriodValue" xlink:to="us-gaap_StockRepurchasedAndRetiredDuringPeriodValue_lbl1" xlink:title="label: StockRepurchasedAndRetiredDuringPeriodValue to us-gaap_StockRepurchasedAndRetiredDuringPeriodValue_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xlink:label="StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xlink:title="StockIssuedDuringPeriodSharesRestrictedStockAwardGross" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xml:lang="en-US" id="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross">Vesting of restricted stock units (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xlink:to="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xlink:title="label: StockIssuedDuringPeriodSharesRestrictedStockAwardGross to us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross1" xml:lang="en-US" id="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross1">Number of shares issued from vesting of restricted stock (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xlink:to="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross1" xlink:title="label: StockIssuedDuringPeriodSharesRestrictedStockAwardGross to us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross_lbl2" xml:lang="en-US" id="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross_lbl2">Stock Issued During Period, Shares, Restricted Stock Award, Gross</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xlink:to="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross_lbl2" xlink:title="label: StockIssuedDuringPeriodSharesRestrictedStockAwardGross to us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchasedAndRetiredDuringPeriodShares" xlink:label="StockRepurchasedAndRetiredDuringPeriodShares" xlink:title="StockRepurchasedAndRetiredDuringPeriodShares" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockRepurchasedAndRetiredDuringPeriodShares" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_StockRepurchasedAndRetiredDuringPeriodShares" xml:lang="en-US" id="us-gaap_StockRepurchasedAndRetiredDuringPeriodShares">Repurchase of common stock (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockRepurchasedAndRetiredDuringPeriodShares" xlink:to="us-gaap_StockRepurchasedAndRetiredDuringPeriodShares" xlink:title="label: StockRepurchasedAndRetiredDuringPeriodShares to us-gaap_StockRepurchasedAndRetiredDuringPeriodShares" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockRepurchasedAndRetiredDuringPeriodShares_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockRepurchasedAndRetiredDuringPeriodShares_lbl1" xml:lang="en-US" id="us-gaap_StockRepurchasedAndRetiredDuringPeriodShares_lbl1">Stock Repurchased and Retired During Period, Shares</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockRepurchasedAndRetiredDuringPeriodShares" xlink:to="us-gaap_StockRepurchasedAndRetiredDuringPeriodShares_lbl1" xlink:title="label: StockRepurchasedAndRetiredDuringPeriodShares to us-gaap_StockRepurchasedAndRetiredDuringPeriodShares_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:label="LiabilityForUncertainTaxPositionsNoncurrent" xlink:title="LiabilityForUncertainTaxPositionsNoncurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xml:lang="en-US" id="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent">Uncertain tax positions</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LiabilityForUncertainTaxPositionsNoncurrent" xlink:to="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:title="label: LiabilityForUncertainTaxPositionsNoncurrent to us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_lbl1" xml:lang="en-US" id="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_lbl1">Liability for Uncertainty in Income Taxes, Noncurrent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LiabilityForUncertainTaxPositionsNoncurrent" xlink:to="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_lbl1" xlink:title="label: LiabilityForUncertainTaxPositionsNoncurrent to us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward">Shares [Roll Forward]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract">Restricted Stock Plan [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="EarningsPerShareTextBlock" xlink:title="EarningsPerShareTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EarningsPerShareTextBlock" xml:lang="en-US" id="us-gaap_EarningsPerShareTextBlock">EARNINGS PER SHARE</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareTextBlock" xlink:to="us-gaap_EarningsPerShareTextBlock" xlink:title="label: EarningsPerShareTextBlock to us-gaap_EarningsPerShareTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="WeightedAverageNumberOfSharesOutstandingAbstract" xlink:title="WeightedAverageNumberOfSharesOutstandingAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xml:lang="en-US" id="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract">Weighted average number of shares outstanding:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:title="label: WeightedAverageNumberOfSharesOutstandingAbstract to us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract1" xml:lang="en-US" id="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract1">Denominator [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract1" xlink:title="label: WeightedAverageNumberOfSharesOutstandingAbstract to us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xlink:label="ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xlink:title="ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xml:lang="en-US" id="us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest">Comprehensive income</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xlink:to="us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xlink:title="label: ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest to us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest_lbl1" xml:lang="en-US" id="us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest_lbl1">Comprehensive Income (Loss), Net of Tax, Including Portion Attributable to Noncontrolling Interest</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xlink:to="us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest_lbl1" xlink:title="label: ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest to us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="CommitmentsAndContingencies" xlink:title="CommitmentsAndContingencies" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingencies" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CommitmentsAndContingencies" xml:lang="en-US" id="us-gaap_CommitmentsAndContingencies">COMMITMENTS AND CONTINGENCIES (Note 6)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommitmentsAndContingencies" xlink:to="us-gaap_CommitmentsAndContingencies" xlink:title="label: CommitmentsAndContingencies to us-gaap_CommitmentsAndContingencies" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:title="AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xml:lang="en-US" id="us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract">Adjustments to reconcile net income to net cash provided by operating activities:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:title="label: AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract to us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" xlink:label="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" xlink:title="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" xml:lang="en-US" id="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities">Total adjustments</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" xlink:title="label: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities to us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities_lbl1" xml:lang="en-US" id="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities_lbl1">Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities_lbl1" xlink:title="label: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities to us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableTradeCurrent" xlink:label="AccountsPayableTradeCurrent" xlink:title="AccountsPayableTradeCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccountsPayableTradeCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccountsPayableTradeCurrent" xml:lang="en-US" id="us-gaap_AccountsPayableTradeCurrent">Accounts payable-trade</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccountsPayableTradeCurrent" xlink:to="us-gaap_AccountsPayableTradeCurrent" xlink:title="label: AccountsPayableTradeCurrent to us-gaap_AccountsPayableTradeCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TaxesPayableCurrent" xlink:label="TaxesPayableCurrent" xlink:title="TaxesPayableCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TaxesPayableCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_TaxesPayableCurrent" xml:lang="en-US" id="us-gaap_TaxesPayableCurrent">Income taxes payable</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TaxesPayableCurrent" xlink:to="us-gaap_TaxesPayableCurrent" xlink:title="label: TaxesPayableCurrent to us-gaap_TaxesPayableCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:title="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xml:lang="en-US" id="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue">Stock-based compensation expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:title="label: AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue to us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl1" xml:lang="en-US" id="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl1">APIC, Share-Based Payment Arrangement, Increase for Cost Recognition</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl1" xlink:title="label: AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue to us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLossAbstract" xlink:label="NetIncomeLossAbstract" xlink:title="NetIncomeLossAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetIncomeLossAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NetIncomeLossAbstract" xml:lang="en-US" id="us-gaap_NetIncomeLossAbstract">Numerator [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetIncomeLossAbstract" xlink:to="us-gaap_NetIncomeLossAbstract" xlink:title="label: NetIncomeLossAbstract to us-gaap_NetIncomeLossAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:title="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xml:lang="en-US" id="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest">Income before income taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:title="label: IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest to us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl1" xml:lang="en-US" id="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl1">Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl1" xlink:title="label: IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest to us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NumberOfStores" xlink:label="NumberOfStores" xlink:title="NumberOfStores" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NumberOfStores" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_NumberOfStores" xml:lang="en-US" id="us-gaap_NumberOfStores">Number of stores</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NumberOfStores" xlink:to="us-gaap_NumberOfStores" xlink:title="label: NumberOfStores to us-gaap_NumberOfStores" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NumberOfStores_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NumberOfStores_lbl1" xml:lang="en-US" id="us-gaap_NumberOfStores_lbl1">Number of Stores</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NumberOfStores" xlink:to="us-gaap_NumberOfStores_lbl1" xlink:title="label: NumberOfStores to us-gaap_NumberOfStores_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:label="BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:title="BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xml:lang="en-US" id="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock">BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:to="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:title="label: BasisOfPresentationAndSignificantAccountingPoliciesTextBlock to us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharesOutstanding" xlink:label="SharesOutstanding" xlink:title="SharesOutstanding" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:title="us-gaap_SharesOutstanding" xml:lang="en-US" id="us-gaap_SharesOutstanding">Balance (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharesOutstanding" xlink:to="us-gaap_SharesOutstanding" xlink:title="label: SharesOutstanding to us-gaap_SharesOutstanding" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharesOutstanding1" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:title="us-gaap_SharesOutstanding1" xml:lang="en-US" id="us-gaap_SharesOutstanding1">Balance (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharesOutstanding" xlink:to="us-gaap_SharesOutstanding1" xlink:title="label: SharesOutstanding to us-gaap_SharesOutstanding1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharesOutstanding_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SharesOutstanding_lbl2" xml:lang="en-US" id="us-gaap_SharesOutstanding_lbl2">Shares, Outstanding</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharesOutstanding" xlink:to="us-gaap_SharesOutstanding_lbl2" xlink:title="label: SharesOutstanding to us-gaap_SharesOutstanding_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="ScheduleOfInventoryCurrentTableTextBlock" xlink:title="ScheduleOfInventoryCurrentTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xml:lang="en-US" id="us-gaap_ScheduleOfInventoryCurrentTableTextBlock">Inventory</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfInventoryCurrentTableTextBlock" xlink:to="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:title="label: ScheduleOfInventoryCurrentTableTextBlock to us-gaap_ScheduleOfInventoryCurrentTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl1" xml:lang="en-US" id="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl1">Schedule of Inventory, Current [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfInventoryCurrentTableTextBlock" xlink:to="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl1" xlink:title="label: ScheduleOfInventoryCurrentTableTextBlock to us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="CommitmentsAndContingenciesDisclosureAbstract" xlink:title="CommitmentsAndContingenciesDisclosureAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xml:lang="en-US" id="us-gaap_CommitmentsAndContingenciesDisclosureAbstract">COMMITMENTS AND CONTINGENCIES [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommitmentsAndContingenciesDisclosureAbstract" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:title="label: CommitmentsAndContingenciesDisclosureAbstract to us-gaap_CommitmentsAndContingenciesDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="IncomeTaxDisclosureAbstract" xlink:title="IncomeTaxDisclosureAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeTaxDisclosureAbstract" xml:lang="en-US" id="us-gaap_IncomeTaxDisclosureAbstract">INCOME TAX [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="us-gaap_IncomeTaxDisclosureAbstract" xlink:title="label: IncomeTaxDisclosureAbstract to us-gaap_IncomeTaxDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="DebtDisclosureAbstract" xlink:title="DebtDisclosureAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DebtDisclosureAbstract" xml:lang="en-US" id="us-gaap_DebtDisclosureAbstract">NOTES PAYABLE AND LONG-TERM DEBT [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtDisclosureAbstract" xlink:to="us-gaap_DebtDisclosureAbstract" xlink:title="label: DebtDisclosureAbstract to us-gaap_DebtDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock" xlink:label="ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock" xlink:title="ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock" xml:lang="en-US" id="us-gaap_ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock">Non-vested, Service-based Awards</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock" xlink:to="us-gaap_ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock" xlink:title="label: ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock to us-gaap_ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:title="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xml:lang="en-US" id="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">STOCK-BASED COMPENSATION [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:title="label: DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract to us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="RestrictedStockUnitsRSUMember" xlink:title="RestrictedStockUnitsRSUMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RestrictedStockUnitsRSUMember" xml:lang="en-US" id="us-gaap_RestrictedStockUnitsRSUMember">Restricted Stock Units [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RestrictedStockUnitsRSUMember" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:title="label: RestrictedStockUnitsRSUMember to us-gaap_RestrictedStockUnitsRSUMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccountingPoliciesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccountingPoliciesAbstract" xml:lang="en-US" id="us-gaap_AccountingPoliciesAbstract">BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccountingPoliciesAbstract" xlink:to="us-gaap_AccountingPoliciesAbstract" xlink:title="label: AccountingPoliciesAbstract to us-gaap_AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOtherCurrentAssets" xlink:label="IncreaseDecreaseInOtherCurrentAssets" xlink:title="IncreaseDecreaseInOtherCurrentAssets" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOtherCurrentAssets" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_IncreaseDecreaseInOtherCurrentAssets" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInOtherCurrentAssets">Other current assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInOtherCurrentAssets" xlink:to="us-gaap_IncreaseDecreaseInOtherCurrentAssets" xlink:title="label: IncreaseDecreaseInOtherCurrentAssets to us-gaap_IncreaseDecreaseInOtherCurrentAssets" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOtherCurrentAssets_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInOtherCurrentAssets_lbl1" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInOtherCurrentAssets_lbl1">Increase (Decrease) in Other Current Assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInOtherCurrentAssets" xlink:to="us-gaap_IncreaseDecreaseInOtherCurrentAssets_lbl1" xlink:title="label: IncreaseDecreaseInOtherCurrentAssets to us-gaap_IncreaseDecreaseInOtherCurrentAssets_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOtherNoncurrentAssets" xlink:label="IncreaseDecreaseInOtherNoncurrentAssets" xlink:title="IncreaseDecreaseInOtherNoncurrentAssets" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOtherNoncurrentAssets" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_IncreaseDecreaseInOtherNoncurrentAssets" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInOtherNoncurrentAssets">Other assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInOtherNoncurrentAssets" xlink:to="us-gaap_IncreaseDecreaseInOtherNoncurrentAssets" xlink:title="label: IncreaseDecreaseInOtherNoncurrentAssets to us-gaap_IncreaseDecreaseInOtherNoncurrentAssets" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOtherNoncurrentAssets_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInOtherNoncurrentAssets_lbl1" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInOtherNoncurrentAssets_lbl1">Increase (Decrease) in Other Noncurrent Assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInOtherNoncurrentAssets" xlink:to="us-gaap_IncreaseDecreaseInOtherNoncurrentAssets_lbl1" xlink:title="label: IncreaseDecreaseInOtherNoncurrentAssets to us-gaap_IncreaseDecreaseInOtherNoncurrentAssets_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:title="ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xml:lang="en-US" id="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock">Computation of Basic and Diluted EPS</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:title="label: ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock to us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:label="ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:title="ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xml:lang="en-US" id="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock">Activity of Non-vested Restricted Common Stock Awards</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:to="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:title="label: ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock to us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:title="ScheduleOfFiniteLivedIntangibleAssetsTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xml:lang="en-US" id="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable">Schedule of Finite-Lived Intangible Assets [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:title="label: ScheduleOfFiniteLivedIntangibleAssetsTable to us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward">Weighted Average Share Price [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue">Forfeited (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" xlink:label="ComprehensiveIncomePolicyPolicyTextBlock" xlink:title="ComprehensiveIncomePolicyPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" xml:lang="en-US" id="us-gaap_ComprehensiveIncomePolicyPolicyTextBlock">Comprehensive Income</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ComprehensiveIncomePolicyPolicyTextBlock" xlink:to="us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" xlink:title="label: ComprehensiveIncomePolicyPolicyTextBlock to us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="BalanceSheetLocationAxis" xlink:title="BalanceSheetLocationAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_BalanceSheetLocationAxis" xml:lang="en-US" id="us-gaap_BalanceSheetLocationAxis">Balance Sheet Location [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationAxis" xlink:title="label: BalanceSheetLocationAxis to us-gaap_BalanceSheetLocationAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameAxis" xlink:label="PlanNameAxis" xlink:title="PlanNameAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PlanNameAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PlanNameAxis" xml:lang="en-US" id="us-gaap_PlanNameAxis">Plan Name [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PlanNameAxis" xlink:to="us-gaap_PlanNameAxis" xlink:title="label: PlanNameAxis to us-gaap_PlanNameAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameDomain" xlink:label="PlanNameDomain" xlink:title="PlanNameDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PlanNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PlanNameDomain" xml:lang="en-US" id="us-gaap_PlanNameDomain">Plan Name [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PlanNameDomain" xlink:to="us-gaap_PlanNameDomain" xlink:title="label: PlanNameDomain to us-gaap_PlanNameDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis" xlink:label="AwardTypeAxis" xlink:title="AwardTypeAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AwardTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AwardTypeAxis" xml:lang="en-US" id="us-gaap_AwardTypeAxis">Award Type [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AwardTypeAxis" xlink:to="us-gaap_AwardTypeAxis" xlink:title="label: AwardTypeAxis to us-gaap_AwardTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:label="AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:title="AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xml:lang="en-US" id="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife">Weighted average amortization period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:to="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:title="label: AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife to us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:label="AccruedLiabilitiesAndOtherLiabilities" xlink:title="AccruedLiabilitiesAndOtherLiabilities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccruedLiabilitiesAndOtherLiabilities" xml:lang="en-US" id="us-gaap_AccruedLiabilitiesAndOtherLiabilities">Accrued expenses and other liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccruedLiabilitiesAndOtherLiabilities" xlink:to="us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:title="label: AccruedLiabilitiesAndOtherLiabilities to us-gaap_AccruedLiabilitiesAndOtherLiabilities" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="PropertyPlantAndEquipmentUsefulLife" xlink:title="PropertyPlantAndEquipmentUsefulLife" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentUsefulLife" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentUsefulLife">Estimated useful lives of assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentUsefulLife" xlink:to="us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:title="label: PropertyPlantAndEquipmentUsefulLife to us-gaap_PropertyPlantAndEquipmentUsefulLife" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:title="FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths">Amortization expense, 2025</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:title="label: FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths to us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:title="FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo">Amortization expense, 2026</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:title="label: FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo to us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:title="FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree">Amortization expense, 2027</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:title="label: FiniteLivedIntangibleAssetsAmortizationExpenseYearThree to us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:title="FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour">Amortization expense, 2028</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:title="label: FiniteLivedIntangibleAssetsAmortizationExpenseYearFour to us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:title="FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear">Amortization expense, 2024</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:title="label: FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear to us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1">Vesting period from grant date</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NumberOfOperatingSegments" xlink:label="NumberOfOperatingSegments" xlink:title="NumberOfOperatingSegments" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NumberOfOperatingSegments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NumberOfOperatingSegments" xml:lang="en-US" id="us-gaap_NumberOfOperatingSegments">Number of operating segments</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NumberOfOperatingSegments" xlink:to="us-gaap_NumberOfOperatingSegments" xlink:title="label: NumberOfOperatingSegments to us-gaap_NumberOfOperatingSegments" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NumberOfReportableSegments" xlink:label="NumberOfReportableSegments" xlink:title="NumberOfReportableSegments" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NumberOfReportableSegments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NumberOfReportableSegments" xml:lang="en-US" id="us-gaap_NumberOfReportableSegments">Number of reporting segments</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NumberOfReportableSegments" xlink:to="us-gaap_NumberOfReportableSegments" xlink:title="label: NumberOfReportableSegments to us-gaap_NumberOfReportableSegments" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="ConcentrationRiskPercentage1" xlink:title="ConcentrationRiskPercentage1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskPercentage1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ConcentrationRiskPercentage1" xml:lang="en-US" id="us-gaap_ConcentrationRiskPercentage1">Revenue percentage</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConcentrationRiskPercentage1" xlink:to="us-gaap_ConcentrationRiskPercentage1" xlink:title="label: ConcentrationRiskPercentage1 to us-gaap_ConcentrationRiskPercentage1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskPercentage1_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ConcentrationRiskPercentage1_lbl1" xml:lang="en-US" id="us-gaap_ConcentrationRiskPercentage1_lbl1">Concentration Risk, Percentage</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConcentrationRiskPercentage1" xlink:to="us-gaap_ConcentrationRiskPercentage1_lbl1" xlink:title="label: ConcentrationRiskPercentage1 to us-gaap_ConcentrationRiskPercentage1_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xml:lang="en-US" id="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax">Foreign currency translation adjustments, net of tax</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="label: OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax to us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="BalanceSheetLocationDomain" xlink:title="BalanceSheetLocationDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_BalanceSheetLocationDomain" xml:lang="en-US" id="us-gaap_BalanceSheetLocationDomain">Balance Sheet Location [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="BalanceSheetLocationDomain" xlink:to="us-gaap_BalanceSheetLocationDomain" xlink:title="label: BalanceSheetLocationDomain to us-gaap_BalanceSheetLocationDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntellectualPropertyMember" xlink:label="IntellectualPropertyMember" xlink:title="IntellectualPropertyMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IntellectualPropertyMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_IntellectualPropertyMember" xml:lang="en-US" id="us-gaap_IntellectualPropertyMember">Trademarks/Copyrights [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IntellectualPropertyMember" xlink:to="us-gaap_IntellectualPropertyMember" xlink:title="label: IntellectualPropertyMember to us-gaap_IntellectualPropertyMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IntellectualPropertyMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IntellectualPropertyMember_lbl1" xml:lang="en-US" id="us-gaap_IntellectualPropertyMember_lbl1">Intellectual Property [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IntellectualPropertyMember" xlink:to="us-gaap_IntellectualPropertyMember_lbl1" xlink:title="label: IntellectualPropertyMember to us-gaap_IntellectualPropertyMember_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesMember" xlink:label="AccountsPayableAndAccruedLiabilitiesMember" xlink:title="AccountsPayableAndAccruedLiabilitiesMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccountsPayableAndAccruedLiabilitiesMember" xml:lang="en-US" id="us-gaap_AccountsPayableAndAccruedLiabilitiesMember">Accrued Expenses and Other Liabilities [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccountsPayableAndAccruedLiabilitiesMember" xlink:to="us-gaap_AccountsPayableAndAccruedLiabilitiesMember" xlink:title="label: AccountsPayableAndAccruedLiabilitiesMember to us-gaap_AccountsPayableAndAccruedLiabilitiesMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SalesRevenueNetMember" xlink:label="SalesRevenueNetMember" xlink:title="SalesRevenueNetMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SalesRevenueNetMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SalesRevenueNetMember" xml:lang="en-US" id="us-gaap_SalesRevenueNetMember">Sales [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SalesRevenueNetMember" xlink:to="us-gaap_SalesRevenueNetMember" xlink:title="label: SalesRevenueNetMember to us-gaap_SalesRevenueNetMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GainLossOnDispositionOfAssets1" xlink:label="GainLossOnDispositionOfAssets1" xlink:title="GainLossOnDispositionOfAssets1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GainLossOnDispositionOfAssets1" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_GainLossOnDispositionOfAssets1" xml:lang="en-US" id="us-gaap_GainLossOnDispositionOfAssets1">Loss on disposal of assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GainLossOnDispositionOfAssets1" xlink:to="us-gaap_GainLossOnDispositionOfAssets1" xlink:title="label: GainLossOnDispositionOfAssets1 to us-gaap_GainLossOnDispositionOfAssets1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GainLossOnDispositionOfAssets1_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_GainLossOnDispositionOfAssets1_lbl1" xml:lang="en-US" id="us-gaap_GainLossOnDispositionOfAssets1_lbl1">Gain (Loss) on Disposition of Assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GainLossOnDispositionOfAssets1" xlink:to="us-gaap_GainLossOnDispositionOfAssets1_lbl1" xlink:title="label: GainLossOnDispositionOfAssets1 to us-gaap_GainLossOnDispositionOfAssets1_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:label="ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:title="ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xml:lang="en-US" id="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy">Accounts Receivable - Trade and Expected Credit Losses</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:to="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:title="label: ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy to us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchaseProgramAuthorizedAmount1" xlink:label="StockRepurchaseProgramAuthorizedAmount1" xlink:title="StockRepurchaseProgramAuthorizedAmount1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockRepurchaseProgramAuthorizedAmount1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockRepurchaseProgramAuthorizedAmount1" xml:lang="en-US" id="us-gaap_StockRepurchaseProgramAuthorizedAmount1">Repurchase of common stock</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockRepurchaseProgramAuthorizedAmount1" xlink:to="us-gaap_StockRepurchaseProgramAuthorizedAmount1" xlink:title="label: StockRepurchaseProgramAuthorizedAmount1 to us-gaap_StockRepurchaseProgramAuthorizedAmount1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:label="StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:title="StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xml:lang="en-US" id="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1">Remaining repurchase of common stock</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:to="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:title="label: StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1 to us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="DeferredIncomeTaxAssetsNet" xlink:title="DeferredIncomeTaxAssetsNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DeferredIncomeTaxAssetsNet" xml:lang="en-US" id="us-gaap_DeferredIncomeTaxAssetsNet">Deferred income taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredIncomeTaxAssetsNet" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet" xlink:title="label: DeferredIncomeTaxAssetsNet to us-gaap_DeferredIncomeTaxAssetsNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredIncomeTaxAssetsNet_lbl1" xml:lang="en-US" id="us-gaap_DeferredIncomeTaxAssetsNet_lbl1">Deferred Income Tax Assets, Net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredIncomeTaxAssetsNet" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet_lbl1" xlink:title="label: DeferredIncomeTaxAssetsNet to us-gaap_DeferredIncomeTaxAssetsNet_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="DeferredIncomeTaxLiabilitiesNet" xlink:title="DeferredIncomeTaxLiabilitiesNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DeferredIncomeTaxLiabilitiesNet" xml:lang="en-US" id="us-gaap_DeferredIncomeTaxLiabilitiesNet">Deferred income taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredIncomeTaxLiabilitiesNet" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:title="label: DeferredIncomeTaxLiabilitiesNet to us-gaap_DeferredIncomeTaxLiabilitiesNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredIncomeTaxLiabilitiesNet_lbl1" xml:lang="en-US" id="us-gaap_DeferredIncomeTaxLiabilitiesNet_lbl1">Deferred Income Tax Liabilities, Net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredIncomeTaxLiabilitiesNet" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet_lbl1" xlink:title="label: DeferredIncomeTaxLiabilitiesNet to us-gaap_DeferredIncomeTaxLiabilitiesNet_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TreasuryStockCommonMember" xlink:label="TreasuryStockCommonMember" xlink:title="TreasuryStockCommonMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TreasuryStockCommonMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_TreasuryStockCommonMember" xml:lang="en-US" id="us-gaap_TreasuryStockCommonMember">Treasury Stock [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TreasuryStockCommonMember" xlink:to="us-gaap_TreasuryStockCommonMember" xlink:title="label: TreasuryStockCommonMember to us-gaap_TreasuryStockCommonMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TreasuryStockCommonShares" xlink:label="TreasuryStockCommonShares" xlink:title="TreasuryStockCommonShares" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TreasuryStockCommonShares" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_TreasuryStockCommonShares" xml:lang="en-US" id="us-gaap_TreasuryStockCommonShares">Treasury stock, shares (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TreasuryStockCommonShares" xlink:to="us-gaap_TreasuryStockCommonShares" xlink:title="label: TreasuryStockCommonShares to us-gaap_TreasuryStockCommonShares" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TreasuryStockCommonValue" xlink:label="TreasuryStockCommonValue" xlink:title="TreasuryStockCommonValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TreasuryStockCommonValue" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_TreasuryStockCommonValue" xml:lang="en-US" id="us-gaap_TreasuryStockCommonValue">Treasury stock at cost (1,424,376 shares at March 31, 2024 and December 31, 2023 respectively)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TreasuryStockCommonValue" xlink:to="us-gaap_TreasuryStockCommonValue" xlink:title="label: TreasuryStockCommonValue to us-gaap_TreasuryStockCommonValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TreasuryStockCommonValue_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_TreasuryStockCommonValue_lbl1" xml:lang="en-US" id="us-gaap_TreasuryStockCommonValue_lbl1">Treasury Stock, Common, Value</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TreasuryStockCommonValue" xlink:to="us-gaap_TreasuryStockCommonValue_lbl1" xlink:title="label: TreasuryStockCommonValue to us-gaap_TreasuryStockCommonValue_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredRevenueRevenueRecognized1" xlink:label="DeferredRevenueRevenueRecognized1" xlink:title="DeferredRevenueRevenueRecognized1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredRevenueRevenueRecognized1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredRevenueRevenueRecognized1" xml:lang="en-US" id="us-gaap_DeferredRevenueRevenueRecognized1">Deferred revenue, recognized</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredRevenueRevenueRecognized1" xlink:to="us-gaap_DeferredRevenueRevenueRecognized1" xlink:title="label: DeferredRevenueRevenueRecognized1 to us-gaap_DeferredRevenueRevenueRecognized1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueAbstract" xlink:label="DisaggregationOfRevenueAbstract" xlink:title="DisaggregationOfRevenueAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DisaggregationOfRevenueAbstract" xml:lang="en-US" id="us-gaap_DisaggregationOfRevenueAbstract">Disaggregated Revenue [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DisaggregationOfRevenueAbstract" xlink:to="us-gaap_DisaggregationOfRevenueAbstract" xlink:title="label: DisaggregationOfRevenueAbstract to us-gaap_DisaggregationOfRevenueAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="DisaggregationOfRevenueTableTextBlock" xlink:title="DisaggregationOfRevenueTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DisaggregationOfRevenueTableTextBlock" xml:lang="en-US" id="us-gaap_DisaggregationOfRevenueTableTextBlock">Disaggregated Revenue</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DisaggregationOfRevenueTableTextBlock" xlink:to="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:title="label: DisaggregationOfRevenueTableTextBlock to us-gaap_DisaggregationOfRevenueTableTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="DisaggregationOfRevenueTable" xlink:title="DisaggregationOfRevenueTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DisaggregationOfRevenueTable" xml:lang="en-US" id="us-gaap_DisaggregationOfRevenueTable">Disaggregation of Revenue [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DisaggregationOfRevenueTable" xlink:to="us-gaap_DisaggregationOfRevenueTable" xlink:title="label: DisaggregationOfRevenueTable to us-gaap_DisaggregationOfRevenueTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="DisaggregationOfRevenueLineItems" xlink:title="DisaggregationOfRevenueLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DisaggregationOfRevenueLineItems" xml:lang="en-US" id="us-gaap_DisaggregationOfRevenueLineItems">Disaggregation of Revenue [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DisaggregationOfRevenueLineItems" xlink:to="us-gaap_DisaggregationOfRevenueLineItems" xlink:title="label: DisaggregationOfRevenueLineItems to us-gaap_DisaggregationOfRevenueLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss" xlink:label="ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss" xlink:title="ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss" xml:lang="en-US" id="us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss">Sales return allowance</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss" xlink:to="us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss" xlink:title="label: ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss to us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss_lbl1" xml:lang="en-US" id="us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss_lbl1">Contract with Customer, Asset, Allowance for Credit Loss</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss" xlink:to="us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss_lbl1" xlink:title="label: ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss to us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="ContractWithCustomerLiabilityRevenueRecognized" xlink:title="ContractWithCustomerLiabilityRevenueRecognized" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xml:lang="en-US" id="us-gaap_ContractWithCustomerLiabilityRevenueRecognized">Revenue recognized from change in deferred obligation balance</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerLiabilityRevenueRecognized" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:title="label: ContractWithCustomerLiabilityRevenueRecognized to us-gaap_ContractWithCustomerLiabilityRevenueRecognized" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="RevenueFromContractWithCustomerAbstract" xlink:title="RevenueFromContractWithCustomerAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RevenueFromContractWithCustomerAbstract" xml:lang="en-US" id="us-gaap_RevenueFromContractWithCustomerAbstract">Revenue Recognition [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:title="label: RevenueFromContractWithCustomerAbstract to us-gaap_RevenueFromContractWithCustomerAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="ContractWithCustomerLiability" xlink:title="ContractWithCustomerLiability" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ContractWithCustomerLiability" xml:lang="en-US" id="us-gaap_ContractWithCustomerLiability">Contract with customer liability</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerLiability" xlink:to="us-gaap_ContractWithCustomerLiability" xlink:title="label: ContractWithCustomerLiability to us-gaap_ContractWithCustomerLiability" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiability_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ContractWithCustomerLiability_lbl1" xml:lang="en-US" id="us-gaap_ContractWithCustomerLiability_lbl1">Contract with Customer, Liability</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerLiability" xlink:to="us-gaap_ContractWithCustomerLiability_lbl1" xlink:title="label: ContractWithCustomerLiability to us-gaap_ContractWithCustomerLiability_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinanceLeaseRightOfUseAsset" xlink:label="FinanceLeaseRightOfUseAsset" xlink:title="FinanceLeaseRightOfUseAsset" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FinanceLeaseRightOfUseAsset" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FinanceLeaseRightOfUseAsset" xml:lang="en-US" id="us-gaap_FinanceLeaseRightOfUseAsset">Financing lease assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FinanceLeaseRightOfUseAsset" xlink:to="us-gaap_FinanceLeaseRightOfUseAsset" xlink:title="label: FinanceLeaseRightOfUseAsset to us-gaap_FinanceLeaseRightOfUseAsset" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="OperatingLeaseRightOfUseAsset" xlink:title="OperatingLeaseRightOfUseAsset" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingLeaseRightOfUseAsset" xml:lang="en-US" id="us-gaap_OperatingLeaseRightOfUseAsset">Operating lease assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseRightOfUseAsset" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" xlink:title="label: OperatingLeaseRightOfUseAsset to us-gaap_OperatingLeaseRightOfUseAsset" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xml:lang="en-US" id="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax">Net sales</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:to="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="label: RevenueFromContractWithCustomerExcludingAssessedTax to us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax1" xml:lang="en-US" id="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax1">Sales</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:to="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax1" xlink:title="label: RevenueFromContractWithCustomerExcludingAssessedTax to us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xml:lang="en-US" id="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents">Effect of exchange rate changes on cash and cash equivalents</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="label: EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents to us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:title="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xml:lang="en-US" id="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect">Net increase in cash and cash equivalents</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:title="label: CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect to us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl1" xml:lang="en-US" id="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl1">Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl1" xlink:title="label: CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect to us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:title="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xml:lang="en-US" id="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents">Cash and cash equivalents, end of period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="label: CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents to us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents1" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:title="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents1" xml:lang="en-US" id="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents1">Cash and cash equivalents, beginning of period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents1" xlink:title="label: CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents to us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl2" xml:lang="en-US" id="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl2">Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl2" xlink:title="label: CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents to us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinanceLeasePrincipalPayments" xlink:label="FinanceLeasePrincipalPayments" xlink:title="FinanceLeasePrincipalPayments" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FinanceLeasePrincipalPayments" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_FinanceLeasePrincipalPayments" xml:lang="en-US" id="us-gaap_FinanceLeasePrincipalPayments">Payment of finance lease obligations</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FinanceLeasePrincipalPayments" xlink:to="us-gaap_FinanceLeasePrincipalPayments" xlink:title="label: FinanceLeasePrincipalPayments to us-gaap_FinanceLeasePrincipalPayments" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FinanceLeasePrincipalPayments_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FinanceLeasePrincipalPayments_lbl1" xml:lang="en-US" id="us-gaap_FinanceLeasePrincipalPayments_lbl1">Finance Lease, Principal Payments</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FinanceLeasePrincipalPayments" xlink:to="us-gaap_FinanceLeasePrincipalPayments_lbl1" xlink:title="label: FinanceLeasePrincipalPayments to us-gaap_FinanceLeasePrincipalPayments_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinanceLeaseLiabilityNoncurrent" xlink:label="FinanceLeaseLiabilityNoncurrent" xlink:title="FinanceLeaseLiabilityNoncurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FinanceLeaseLiabilityNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FinanceLeaseLiabilityNoncurrent" xml:lang="en-US" id="us-gaap_FinanceLeaseLiabilityNoncurrent">Finance lease liabilities, non-current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FinanceLeaseLiabilityNoncurrent" xlink:to="us-gaap_FinanceLeaseLiabilityNoncurrent" xlink:title="label: FinanceLeaseLiabilityNoncurrent to us-gaap_FinanceLeaseLiabilityNoncurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="OperatingLeaseLiabilityCurrent" xlink:title="OperatingLeaseLiabilityCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_OperatingLeaseLiabilityCurrent" xml:lang="en-US" id="us-gaap_OperatingLeaseLiabilityCurrent">Current portion of operating lease liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseLiabilityCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" xlink:title="label: OperatingLeaseLiabilityCurrent to us-gaap_OperatingLeaseLiabilityCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingLeaseLiabilityCurrent_lbl1" xml:lang="en-US" id="us-gaap_OperatingLeaseLiabilityCurrent_lbl1">Operating Lease, Liability, Current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseLiabilityCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_lbl1" xlink:title="label: OperatingLeaseLiabilityCurrent to us-gaap_OperatingLeaseLiabilityCurrent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="OperatingLeaseLiabilityNoncurrent" xlink:title="OperatingLeaseLiabilityNoncurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_OperatingLeaseLiabilityNoncurrent" xml:lang="en-US" id="us-gaap_OperatingLeaseLiabilityNoncurrent">Operating lease liabilities, non-current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseLiabilityNoncurrent" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:title="label: OperatingLeaseLiabilityNoncurrent to us-gaap_OperatingLeaseLiabilityNoncurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl1" xml:lang="en-US" id="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl1">Operating Lease, Liability, Noncurrent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseLiabilityNoncurrent" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl1" xlink:title="label: OperatingLeaseLiabilityNoncurrent to us-gaap_OperatingLeaseLiabilityNoncurrent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeLeasesPolicyTextBlock" xlink:label="LesseeLeasesPolicyTextBlock" xlink:title="LesseeLeasesPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_LesseeLeasesPolicyTextBlock" xml:lang="en-US" id="us-gaap_LesseeLeasesPolicyTextBlock">Leases</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeLeasesPolicyTextBlock" xlink:to="us-gaap_LesseeLeasesPolicyTextBlock" xlink:title="label: LesseeLeasesPolicyTextBlock to us-gaap_LesseeLeasesPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeLeasesPolicyTextBlock_lbl1" xml:lang="en-US" id="us-gaap_LesseeLeasesPolicyTextBlock_lbl1">Lessee, Leases [Policy Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeLeasesPolicyTextBlock" xlink:to="us-gaap_LesseeLeasesPolicyTextBlock_lbl1" xlink:title="label: LesseeLeasesPolicyTextBlock to us-gaap_LesseeLeasesPolicyTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:label="RevenueFromContractWithCustomerPolicyTextBlock" xlink:title="RevenueFromContractWithCustomerPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xml:lang="en-US" id="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock">Revenue Recognition</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenueFromContractWithCustomerPolicyTextBlock" xlink:to="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:title="label: RevenueFromContractWithCustomerPolicyTextBlock to us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedPaymentArrangementEmployeeMember" xlink:label="ShareBasedPaymentArrangementEmployeeMember" xlink:title="ShareBasedPaymentArrangementEmployeeMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedPaymentArrangementEmployeeMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedPaymentArrangementEmployeeMember" xml:lang="en-US" id="us-gaap_ShareBasedPaymentArrangementEmployeeMember">Employees [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedPaymentArrangementEmployeeMember" xlink:to="us-gaap_ShareBasedPaymentArrangementEmployeeMember" xlink:title="label: ShareBasedPaymentArrangementEmployeeMember to us-gaap_ShareBasedPaymentArrangementEmployeeMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedPaymentArrangementEmployeeMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedPaymentArrangementEmployeeMember_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedPaymentArrangementEmployeeMember_lbl1">Share-Based Payment Arrangement, Employee [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedPaymentArrangementEmployeeMember" xlink:to="us-gaap_ShareBasedPaymentArrangementEmployeeMember_lbl1" xlink:title="label: ShareBasedPaymentArrangementEmployeeMember to us-gaap_ShareBasedPaymentArrangementEmployeeMember_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:label="OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:title="OperatingLeaseRightOfUseAssetAmortizationExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xml:lang="en-US" id="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense">Operating lease asset amortization</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:to="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:title="label: OperatingLeaseRightOfUseAssetAmortizationExpense to us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOperatingLeaseLiability" xlink:label="IncreaseDecreaseInOperatingLeaseLiability" xlink:title="IncreaseDecreaseInOperatingLeaseLiability" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOperatingLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_IncreaseDecreaseInOperatingLeaseLiability" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInOperatingLeaseLiability">Operating lease liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInOperatingLeaseLiability" xlink:to="us-gaap_IncreaseDecreaseInOperatingLeaseLiability" xlink:title="label: IncreaseDecreaseInOperatingLeaseLiability to us-gaap_IncreaseDecreaseInOperatingLeaseLiability" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOperatingLeaseLiability_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInOperatingLeaseLiability_lbl1" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInOperatingLeaseLiability_lbl1">Increase (Decrease) in Operating Lease Liability</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInOperatingLeaseLiability" xlink:to="us-gaap_IncreaseDecreaseInOperatingLeaseLiability_lbl1" xlink:title="label: IncreaseDecreaseInOperatingLeaseLiability to us-gaap_IncreaseDecreaseInOperatingLeaseLiability_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="TitleOfIndividualWithRelationshipToEntityDomain" xlink:title="TitleOfIndividualWithRelationshipToEntityDomain" />
    <link:label xlink:type="resource" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_TitleOfIndividualWithRelationshipToEntityDomain" xml:lang="en-US" id="srt_TitleOfIndividualWithRelationshipToEntityDomain">Title of Individual [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:title="label: TitleOfIndividualWithRelationshipToEntityDomain to srt_TitleOfIndividualWithRelationshipToEntityDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_DirectorMember" xlink:label="DirectorMember" xlink:title="DirectorMember" />
    <link:label xlink:type="resource" xlink:label="srt_DirectorMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="srt_DirectorMember" xml:lang="en-US" id="srt_DirectorMember">Non-Employee Directors [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DirectorMember" xlink:to="srt_DirectorMember" xlink:title="label: DirectorMember to srt_DirectorMember" />
    <link:label xlink:type="resource" xlink:label="srt_DirectorMember1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_DirectorMember1" xml:lang="en-US" id="srt_DirectorMember1">Board of Directors [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DirectorMember" xlink:to="srt_DirectorMember1" xlink:title="label: DirectorMember to srt_DirectorMember1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ChiefExecutiveOfficerMember" xlink:label="ChiefExecutiveOfficerMember" xlink:title="ChiefExecutiveOfficerMember" />
    <link:label xlink:type="resource" xlink:label="srt_ChiefExecutiveOfficerMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_ChiefExecutiveOfficerMember" xml:lang="en-US" id="srt_ChiefExecutiveOfficerMember">Chief Executive Officer [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ChiefExecutiveOfficerMember" xlink:to="srt_ChiefExecutiveOfficerMember" xlink:title="label: ChiefExecutiveOfficerMember to srt_ChiefExecutiveOfficerMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain" xlink:label="SegmentGeographicalDomain" xlink:title="SegmentGeographicalDomain" />
    <link:label xlink:type="resource" xlink:label="srt_SegmentGeographicalDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_SegmentGeographicalDomain" xml:lang="en-US" id="srt_SegmentGeographicalDomain">Geographical [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SegmentGeographicalDomain" xlink:to="srt_SegmentGeographicalDomain" xlink:title="label: SegmentGeographicalDomain to srt_SegmentGeographicalDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementGeographicalAxis" xlink:label="StatementGeographicalAxis" xlink:title="StatementGeographicalAxis" />
    <link:label xlink:type="resource" xlink:label="srt_StatementGeographicalAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_StatementGeographicalAxis" xml:lang="en-US" id="srt_StatementGeographicalAxis">Geographical [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementGeographicalAxis" xlink:to="srt_StatementGeographicalAxis" xlink:title="label: StatementGeographicalAxis to srt_StatementGeographicalAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:label xlink:type="resource" xlink:label="srt_RangeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_RangeAxis" xml:lang="en-US" id="srt_RangeAxis">Statistical Measurement [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RangeAxis" xlink:to="srt_RangeAxis" xlink:title="label: RangeAxis to srt_RangeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:label xlink:type="resource" xlink:label="srt_RangeMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_RangeMember" xml:lang="en-US" id="srt_RangeMember">Statistical Measurement [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RangeMember" xlink:to="srt_RangeMember" xlink:title="label: RangeMember to srt_RangeMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember" xlink:label="MaximumMember" xlink:title="MaximumMember" />
    <link:label xlink:type="resource" xlink:label="srt_MaximumMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_MaximumMember" xml:lang="en-US" id="srt_MaximumMember">Maximum [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="MaximumMember" xlink:to="srt_MaximumMember" xlink:title="label: MaximumMember to srt_MaximumMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember" xlink:label="MinimumMember" xlink:title="MinimumMember" />
    <link:label xlink:type="resource" xlink:label="srt_MinimumMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_MinimumMember" xml:lang="en-US" id="srt_MinimumMember">Minimum [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="MinimumMember" xlink:to="srt_MinimumMember" xlink:title="label: MinimumMember to srt_MinimumMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_TitleOfIndividualAxis" xlink:label="TitleOfIndividualAxis" xlink:title="TitleOfIndividualAxis" />
    <link:label xlink:type="resource" xlink:label="srt_TitleOfIndividualAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_TitleOfIndividualAxis" xml:lang="en-US" id="srt_TitleOfIndividualAxis">Title of Individual [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualAxis" xlink:title="label: TitleOfIndividualAxis to srt_TitleOfIndividualAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_CA" xlink:label="CA" xlink:title="CA" />
    <link:label xlink:type="resource" xlink:label="country_CA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="country_CA" xml:lang="en-US" id="country_CA">Canada [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CA" xlink:to="country_CA" xlink:title="label: CA to country_CA" />
    <link:label xlink:type="resource" xlink:label="country_CA_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="country_CA_lbl1" xml:lang="en-US" id="country_CA_lbl1">CANADA</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CA" xlink:to="country_CA_lbl1" xlink:title="label: CA to country_CA_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_ES" xlink:label="ES" xlink:title="ES" />
    <link:label xlink:type="resource" xlink:label="country_ES" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="country_ES" xml:lang="en-US" id="country_ES">Spain [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ES" xlink:to="country_ES" xlink:title="label: ES to country_ES" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_US" xlink:label="US" xlink:title="US" />
    <link:label xlink:type="resource" xlink:label="country_US" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="country_US" xml:lang="en-US" id="country_US">United States [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="US" xlink:to="country_US" xlink:title="label: US to country_US" />
    <link:label xlink:type="resource" xlink:label="country_US_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="country_US_lbl1" xml:lang="en-US" id="country_US_lbl1">UNITED STATES</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="US" xlink:to="country_US_lbl1" xlink:title="label: US to country_US_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CoverAbstract" xlink:label="CoverAbstract" xlink:title="CoverAbstract" />
    <link:label xlink:type="resource" xlink:label="dei_CoverAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_CoverAbstract" xml:lang="en-US" id="dei_CoverAbstract">Cover [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CoverAbstract" xlink:to="dei_CoverAbstract" xlink:title="label: CoverAbstract to dei_CoverAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentType" xlink:label="DocumentType" xlink:title="DocumentType" />
    <link:label xlink:type="resource" xlink:label="dei_DocumentType" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_DocumentType" xml:lang="en-US" id="dei_DocumentType">Document Type</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DocumentType" xlink:to="dei_DocumentType" xlink:title="label: DocumentType to dei_DocumentType" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentQuarterlyReport" xlink:label="DocumentQuarterlyReport" xlink:title="DocumentQuarterlyReport" />
    <link:label xlink:type="resource" xlink:label="dei_DocumentQuarterlyReport" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_DocumentQuarterlyReport" xml:lang="en-US" id="dei_DocumentQuarterlyReport">Document Quarterly Report</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DocumentQuarterlyReport" xlink:to="dei_DocumentQuarterlyReport" xlink:title="label: DocumentQuarterlyReport to dei_DocumentQuarterlyReport" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentTransitionReport" xlink:label="DocumentTransitionReport" xlink:title="DocumentTransitionReport" />
    <link:label xlink:type="resource" xlink:label="dei_DocumentTransitionReport" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_DocumentTransitionReport" xml:lang="en-US" id="dei_DocumentTransitionReport">Document Transition Report</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DocumentTransitionReport" xlink:to="dei_DocumentTransitionReport" xlink:title="label: DocumentTransitionReport to dei_DocumentTransitionReport" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityInteractiveDataCurrent" xlink:label="EntityInteractiveDataCurrent" xlink:title="EntityInteractiveDataCurrent" />
    <link:label xlink:type="resource" xlink:label="dei_EntityInteractiveDataCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityInteractiveDataCurrent" xml:lang="en-US" id="dei_EntityInteractiveDataCurrent">Entity Interactive Data Current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityInteractiveDataCurrent" xlink:to="dei_EntityInteractiveDataCurrent" xlink:title="label: EntityInteractiveDataCurrent to dei_EntityInteractiveDataCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AmendmentFlag" xlink:label="AmendmentFlag" xlink:title="AmendmentFlag" />
    <link:label xlink:type="resource" xlink:label="dei_AmendmentFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_AmendmentFlag" xml:lang="en-US" id="dei_AmendmentFlag">Amendment Flag</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AmendmentFlag" xlink:to="dei_AmendmentFlag" xlink:title="label: AmendmentFlag to dei_AmendmentFlag" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFiscalYearFocus" xlink:label="DocumentFiscalYearFocus" xlink:title="DocumentFiscalYearFocus" />
    <link:label xlink:type="resource" xlink:label="dei_DocumentFiscalYearFocus" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_DocumentFiscalYearFocus" xml:lang="en-US" id="dei_DocumentFiscalYearFocus">Document Fiscal Year Focus</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DocumentFiscalYearFocus" xlink:to="dei_DocumentFiscalYearFocus" xlink:title="label: DocumentFiscalYearFocus to dei_DocumentFiscalYearFocus" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="DocumentFiscalPeriodFocus" xlink:title="DocumentFiscalPeriodFocus" />
    <link:label xlink:type="resource" xlink:label="dei_DocumentFiscalPeriodFocus" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_DocumentFiscalPeriodFocus" xml:lang="en-US" id="dei_DocumentFiscalPeriodFocus">Document Fiscal Period Focus</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DocumentFiscalPeriodFocus" xlink:to="dei_DocumentFiscalPeriodFocus" xlink:title="label: DocumentFiscalPeriodFocus to dei_DocumentFiscalPeriodFocus" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentPeriodEndDate" xlink:label="DocumentPeriodEndDate" xlink:title="DocumentPeriodEndDate" />
    <link:label xlink:type="resource" xlink:label="dei_DocumentPeriodEndDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_DocumentPeriodEndDate" xml:lang="en-US" id="dei_DocumentPeriodEndDate">Document Period End Date</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DocumentPeriodEndDate" xlink:to="dei_DocumentPeriodEndDate" xlink:title="label: DocumentPeriodEndDate to dei_DocumentPeriodEndDate" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityRegistrantName" xlink:label="EntityRegistrantName" xlink:title="EntityRegistrantName" />
    <link:label xlink:type="resource" xlink:label="dei_EntityRegistrantName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityRegistrantName" xml:lang="en-US" id="dei_EntityRegistrantName">Entity Registrant Name</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityRegistrantName" xlink:to="dei_EntityRegistrantName" xlink:title="label: EntityRegistrantName to dei_EntityRegistrantName" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCentralIndexKey" xlink:label="EntityCentralIndexKey" xlink:title="EntityCentralIndexKey" />
    <link:label xlink:type="resource" xlink:label="dei_EntityCentralIndexKey" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityCentralIndexKey" xml:lang="en-US" id="dei_EntityCentralIndexKey">Entity Central Index Key</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityCentralIndexKey" xlink:to="dei_EntityCentralIndexKey" xlink:title="label: EntityCentralIndexKey to dei_EntityCentralIndexKey" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityFileNumber" xlink:label="EntityFileNumber" xlink:title="EntityFileNumber" />
    <link:label xlink:type="resource" xlink:label="dei_EntityFileNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityFileNumber" xml:lang="en-US" id="dei_EntityFileNumber">Entity File Number</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityFileNumber" xlink:to="dei_EntityFileNumber" xlink:title="label: EntityFileNumber to dei_EntityFileNumber" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityTaxIdentificationNumber" xlink:label="EntityTaxIdentificationNumber" xlink:title="EntityTaxIdentificationNumber" />
    <link:label xlink:type="resource" xlink:label="dei_EntityTaxIdentificationNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityTaxIdentificationNumber" xml:lang="en-US" id="dei_EntityTaxIdentificationNumber">Entity Tax Identification Number</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityTaxIdentificationNumber" xlink:to="dei_EntityTaxIdentificationNumber" xlink:title="label: EntityTaxIdentificationNumber to dei_EntityTaxIdentificationNumber" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="EntityIncorporationStateCountryCode" xlink:title="EntityIncorporationStateCountryCode" />
    <link:label xlink:type="resource" xlink:label="dei_EntityIncorporationStateCountryCode" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityIncorporationStateCountryCode" xml:lang="en-US" id="dei_EntityIncorporationStateCountryCode">Entity Incorporation, State or Country Code</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityIncorporationStateCountryCode" xlink:to="dei_EntityIncorporationStateCountryCode" xlink:title="label: EntityIncorporationStateCountryCode to dei_EntityIncorporationStateCountryCode" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CurrentFiscalYearEndDate" xlink:label="CurrentFiscalYearEndDate" xlink:title="CurrentFiscalYearEndDate" />
    <link:label xlink:type="resource" xlink:label="dei_CurrentFiscalYearEndDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_CurrentFiscalYearEndDate" xml:lang="en-US" id="dei_CurrentFiscalYearEndDate">Current Fiscal Year End Date</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CurrentFiscalYearEndDate" xlink:to="dei_CurrentFiscalYearEndDate" xlink:title="label: CurrentFiscalYearEndDate to dei_CurrentFiscalYearEndDate" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCurrentReportingStatus" xlink:label="EntityCurrentReportingStatus" xlink:title="EntityCurrentReportingStatus" />
    <link:label xlink:type="resource" xlink:label="dei_EntityCurrentReportingStatus" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityCurrentReportingStatus" xml:lang="en-US" id="dei_EntityCurrentReportingStatus">Entity Current Reporting Status</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityCurrentReportingStatus" xlink:to="dei_EntityCurrentReportingStatus" xlink:title="label: EntityCurrentReportingStatus to dei_EntityCurrentReportingStatus" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityShellCompany" xlink:label="EntityShellCompany" xlink:title="EntityShellCompany" />
    <link:label xlink:type="resource" xlink:label="dei_EntityShellCompany" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityShellCompany" xml:lang="en-US" id="dei_EntityShellCompany">Entity Shell Company</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityShellCompany" xlink:to="dei_EntityShellCompany" xlink:title="label: EntityShellCompany to dei_EntityShellCompany" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityFilerCategory" xlink:label="EntityFilerCategory" xlink:title="EntityFilerCategory" />
    <link:label xlink:type="resource" xlink:label="dei_EntityFilerCategory" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityFilerCategory" xml:lang="en-US" id="dei_EntityFilerCategory">Entity Filer Category</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityFilerCategory" xlink:to="dei_EntityFilerCategory" xlink:title="label: EntityFilerCategory to dei_EntityFilerCategory" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntitySmallBusiness" xlink:label="EntitySmallBusiness" xlink:title="EntitySmallBusiness" />
    <link:label xlink:type="resource" xlink:label="dei_EntitySmallBusiness" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntitySmallBusiness" xml:lang="en-US" id="dei_EntitySmallBusiness">Entity Small Business</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntitySmallBusiness" xlink:to="dei_EntitySmallBusiness" xlink:title="label: EntitySmallBusiness to dei_EntitySmallBusiness" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityEmergingGrowthCompany" xlink:label="EntityEmergingGrowthCompany" xlink:title="EntityEmergingGrowthCompany" />
    <link:label xlink:type="resource" xlink:label="dei_EntityEmergingGrowthCompany" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityEmergingGrowthCompany" xml:lang="en-US" id="dei_EntityEmergingGrowthCompany">Entity Emerging Growth Company</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityEmergingGrowthCompany" xlink:to="dei_EntityEmergingGrowthCompany" xlink:title="label: EntityEmergingGrowthCompany to dei_EntityEmergingGrowthCompany" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressAddressLine1" xlink:label="EntityAddressAddressLine1" xlink:title="EntityAddressAddressLine1" />
    <link:label xlink:type="resource" xlink:label="dei_EntityAddressAddressLine1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityAddressAddressLine1" xml:lang="en-US" id="dei_EntityAddressAddressLine1">Entity Address, Address Line One</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityAddressAddressLine1" xlink:to="dei_EntityAddressAddressLine1" xlink:title="label: EntityAddressAddressLine1 to dei_EntityAddressAddressLine1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressCityOrTown" xlink:label="EntityAddressCityOrTown" xlink:title="EntityAddressCityOrTown" />
    <link:label xlink:type="resource" xlink:label="dei_EntityAddressCityOrTown" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityAddressCityOrTown" xml:lang="en-US" id="dei_EntityAddressCityOrTown">Entity Address, City or Town</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityAddressCityOrTown" xlink:to="dei_EntityAddressCityOrTown" xlink:title="label: EntityAddressCityOrTown to dei_EntityAddressCityOrTown" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressStateOrProvince" xlink:label="EntityAddressStateOrProvince" xlink:title="EntityAddressStateOrProvince" />
    <link:label xlink:type="resource" xlink:label="dei_EntityAddressStateOrProvince" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityAddressStateOrProvince" xml:lang="en-US" id="dei_EntityAddressStateOrProvince">Entity Address, State or Province</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityAddressStateOrProvince" xlink:to="dei_EntityAddressStateOrProvince" xlink:title="label: EntityAddressStateOrProvince to dei_EntityAddressStateOrProvince" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressPostalZipCode" xlink:label="EntityAddressPostalZipCode" xlink:title="EntityAddressPostalZipCode" />
    <link:label xlink:type="resource" xlink:label="dei_EntityAddressPostalZipCode" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityAddressPostalZipCode" xml:lang="en-US" id="dei_EntityAddressPostalZipCode">Entity Address, Postal Zip Code</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityAddressPostalZipCode" xlink:to="dei_EntityAddressPostalZipCode" xlink:title="label: EntityAddressPostalZipCode to dei_EntityAddressPostalZipCode" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CityAreaCode" xlink:label="CityAreaCode" xlink:title="CityAreaCode" />
    <link:label xlink:type="resource" xlink:label="dei_CityAreaCode" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_CityAreaCode" xml:lang="en-US" id="dei_CityAreaCode">City Area Code</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CityAreaCode" xlink:to="dei_CityAreaCode" xlink:title="label: CityAreaCode to dei_CityAreaCode" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_LocalPhoneNumber" xlink:label="LocalPhoneNumber" xlink:title="LocalPhoneNumber" />
    <link:label xlink:type="resource" xlink:label="dei_LocalPhoneNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_LocalPhoneNumber" xml:lang="en-US" id="dei_LocalPhoneNumber">Local Phone Number</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LocalPhoneNumber" xlink:to="dei_LocalPhoneNumber" xlink:title="label: LocalPhoneNumber to dei_LocalPhoneNumber" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_Security12bTitle" xlink:label="Security12bTitle" xlink:title="Security12bTitle" />
    <link:label xlink:type="resource" xlink:label="dei_Security12bTitle" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_Security12bTitle" xml:lang="en-US" id="dei_Security12bTitle">Title of 12(b) Security</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="Security12bTitle" xlink:to="dei_Security12bTitle" xlink:title="label: Security12bTitle to dei_Security12bTitle" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_TradingSymbol" xlink:label="TradingSymbol" xlink:title="TradingSymbol" />
    <link:label xlink:type="resource" xlink:label="dei_TradingSymbol" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_TradingSymbol" xml:lang="en-US" id="dei_TradingSymbol">Trading Symbol</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TradingSymbol" xlink:to="dei_TradingSymbol" xlink:title="label: TradingSymbol to dei_TradingSymbol" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_SecurityExchangeName" xlink:label="SecurityExchangeName" xlink:title="SecurityExchangeName" />
    <link:label xlink:type="resource" xlink:label="dei_SecurityExchangeName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_SecurityExchangeName" xml:lang="en-US" id="dei_SecurityExchangeName">Security Exchange Name</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SecurityExchangeName" xlink:to="dei_SecurityExchangeName" xlink:title="label: SecurityExchangeName to dei_SecurityExchangeName" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="EntityCommonStockSharesOutstanding" xlink:title="EntityCommonStockSharesOutstanding" />
    <link:label xlink:type="resource" xlink:label="dei_EntityCommonStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityCommonStockSharesOutstanding" xml:lang="en-US" id="dei_EntityCommonStockSharesOutstanding">Entity Common Stock, Shares Outstanding</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityCommonStockSharesOutstanding" xlink:to="dei_EntityCommonStockSharesOutstanding" xlink:title="label: EntityCommonStockSharesOutstanding to dei_EntityCommonStockSharesOutstanding" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_FairValueOfFinancialInstrumentsAbstract" xlink:label="FairValueOfFinancialInstrumentsAbstract" xlink:title="FairValueOfFinancialInstrumentsAbstract" />
    <link:label xlink:type="resource" xlink:label="tlfa_FairValueOfFinancialInstrumentsAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tlfa_FairValueOfFinancialInstrumentsAbstract_lbl1" xml:lang="en-US" id="tlfa_FairValueOfFinancialInstrumentsAbstract_lbl1">Fair Value of Financial Instruments [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FairValueOfFinancialInstrumentsAbstract" xlink:to="tlfa_FairValueOfFinancialInstrumentsAbstract_lbl1" xlink:title="label: FairValueOfFinancialInstrumentsAbstract to tlfa_FairValueOfFinancialInstrumentsAbstract_lbl1" />
    <link:label xlink:type="resource" xlink:label="tlfa_FairValueOfFinancialInstrumentsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tlfa_FairValueOfFinancialInstrumentsAbstract" xml:lang="en-US" id="tlfa_FairValueOfFinancialInstrumentsAbstract">Fair Value of Financial Instruments [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FairValueOfFinancialInstrumentsAbstract" xlink:to="tlfa_FairValueOfFinancialInstrumentsAbstract" xlink:title="label: FairValueOfFinancialInstrumentsAbstract to tlfa_FairValueOfFinancialInstrumentsAbstract" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_BusinessDescriptionAbstract" xlink:label="BusinessDescriptionAbstract" xlink:title="BusinessDescriptionAbstract" />
    <link:label xlink:type="resource" xlink:label="tlfa_BusinessDescriptionAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tlfa_BusinessDescriptionAbstract_lbl1" xml:lang="en-US" id="tlfa_BusinessDescriptionAbstract_lbl1">Business Description [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="BusinessDescriptionAbstract" xlink:to="tlfa_BusinessDescriptionAbstract_lbl1" xlink:title="label: BusinessDescriptionAbstract to tlfa_BusinessDescriptionAbstract_lbl1" />
    <link:label xlink:type="resource" xlink:label="tlfa_BusinessDescriptionAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tlfa_BusinessDescriptionAbstract" xml:lang="en-US" id="tlfa_BusinessDescriptionAbstract">Description of Business [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="BusinessDescriptionAbstract" xlink:to="tlfa_BusinessDescriptionAbstract" xlink:title="label: BusinessDescriptionAbstract to tlfa_BusinessDescriptionAbstract" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_JPMorganChaseBankNAMember" xlink:label="JPMorganChaseBankNAMember" xlink:title="JPMorganChaseBankNAMember" />
    <link:label xlink:type="resource" xlink:label="tlfa_JPMorganChaseBankNAMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tlfa_JPMorganChaseBankNAMember_lbl" xml:lang="en-US" id="tlfa_JPMorganChaseBankNAMember_lbl">The name of lender will provide the line of credit facility under the credit agreement.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="JPMorganChaseBankNAMember" xlink:to="tlfa_JPMorganChaseBankNAMember_lbl" xlink:title="label: JPMorganChaseBankNAMember to tlfa_JPMorganChaseBankNAMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tlfa_JPMorganChaseBankNAMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tlfa_JPMorganChaseBankNAMember_lbl1" xml:lang="en-US" id="tlfa_JPMorganChaseBankNAMember_lbl1">JP Morgan Chase Bank, N.A. [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="JPMorganChaseBankNAMember" xlink:to="tlfa_JPMorganChaseBankNAMember_lbl1" xlink:title="label: JPMorganChaseBankNAMember to tlfa_JPMorganChaseBankNAMember_lbl1" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_RevenueRecognitionDiscountsPolicyTextBlock" xlink:label="RevenueRecognitionDiscountsPolicyTextBlock" xlink:title="RevenueRecognitionDiscountsPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="tlfa_RevenueRecognitionDiscountsPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tlfa_RevenueRecognitionDiscountsPolicyTextBlock_lbl" xml:lang="en-US" id="tlfa_RevenueRecognitionDiscountsPolicyTextBlock_lbl">Disclosure of accounting policy for sales discounts.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenueRecognitionDiscountsPolicyTextBlock" xlink:to="tlfa_RevenueRecognitionDiscountsPolicyTextBlock_lbl" xlink:title="label: RevenueRecognitionDiscountsPolicyTextBlock to tlfa_RevenueRecognitionDiscountsPolicyTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="tlfa_RevenueRecognitionDiscountsPolicyTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tlfa_RevenueRecognitionDiscountsPolicyTextBlock_lbl1" xml:lang="en-US" id="tlfa_RevenueRecognitionDiscountsPolicyTextBlock_lbl1">Revenue Recognition, Discounts [Policy Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenueRecognitionDiscountsPolicyTextBlock" xlink:to="tlfa_RevenueRecognitionDiscountsPolicyTextBlock_lbl1" xlink:title="label: RevenueRecognitionDiscountsPolicyTextBlock to tlfa_RevenueRecognitionDiscountsPolicyTextBlock_lbl1" />
    <link:label xlink:type="resource" xlink:label="tlfa_RevenueRecognitionDiscountsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tlfa_RevenueRecognitionDiscountsPolicyTextBlock" xml:lang="en-US" id="tlfa_RevenueRecognitionDiscountsPolicyTextBlock">Discounts</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenueRecognitionDiscountsPolicyTextBlock" xlink:to="tlfa_RevenueRecognitionDiscountsPolicyTextBlock" xlink:title="label: RevenueRecognitionDiscountsPolicyTextBlock to tlfa_RevenueRecognitionDiscountsPolicyTextBlock" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_AllOtherCountriesMember" xlink:label="AllOtherCountriesMember" xlink:title="AllOtherCountriesMember" />
    <link:label xlink:type="resource" xlink:label="tlfa_AllOtherCountriesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tlfa_AllOtherCountriesMember_lbl" xml:lang="en-US" id="tlfa_AllOtherCountriesMember_lbl">All other countries excluding the United States and Canada.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AllOtherCountriesMember" xlink:to="tlfa_AllOtherCountriesMember_lbl" xlink:title="label: AllOtherCountriesMember to tlfa_AllOtherCountriesMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tlfa_AllOtherCountriesMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tlfa_AllOtherCountriesMember_lbl1" xml:lang="en-US" id="tlfa_AllOtherCountriesMember_lbl1">All Other Countries [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AllOtherCountriesMember" xlink:to="tlfa_AllOtherCountriesMember_lbl1" xlink:title="label: AllOtherCountriesMember to tlfa_AllOtherCountriesMember_lbl1" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_OtherCountriesMember" xlink:label="OtherCountriesMember" xlink:title="OtherCountriesMember" />
    <link:label xlink:type="resource" xlink:label="tlfa_OtherCountriesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tlfa_OtherCountriesMember_lbl" xml:lang="en-US" id="tlfa_OtherCountriesMember_lbl">All other countries excluding the United States and Canada.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OtherCountriesMember" xlink:to="tlfa_OtherCountriesMember_lbl" xlink:title="label: OtherCountriesMember to tlfa_OtherCountriesMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tlfa_OtherCountriesMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tlfa_OtherCountriesMember_lbl1" xml:lang="en-US" id="tlfa_OtherCountriesMember_lbl1">Other Countries [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OtherCountriesMember" xlink:to="tlfa_OtherCountriesMember_lbl1" xlink:title="label: OtherCountriesMember to tlfa_OtherCountriesMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tlfa_OtherCountriesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tlfa_OtherCountriesMember" xml:lang="en-US" id="tlfa_OtherCountriesMember">Other [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OtherCountriesMember" xlink:to="tlfa_OtherCountriesMember" xlink:title="label: OtherCountriesMember to tlfa_OtherCountriesMember" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_InventoryMerchandiseExpectedToBeReturned" xlink:label="InventoryMerchandiseExpectedToBeReturned" xlink:title="InventoryMerchandiseExpectedToBeReturned" />
    <link:label xlink:type="resource" xlink:label="tlfa_InventoryMerchandiseExpectedToBeReturned_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tlfa_InventoryMerchandiseExpectedToBeReturned_lbl" xml:lang="en-US" id="tlfa_InventoryMerchandiseExpectedToBeReturned_lbl">Gross amount of merchandise or supplies to which the entity expected returns as of balance sheet date.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryMerchandiseExpectedToBeReturned" xlink:to="tlfa_InventoryMerchandiseExpectedToBeReturned_lbl" xlink:title="label: InventoryMerchandiseExpectedToBeReturned to tlfa_InventoryMerchandiseExpectedToBeReturned_lbl" />
    <link:label xlink:type="resource" xlink:label="tlfa_InventoryMerchandiseExpectedToBeReturned_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tlfa_InventoryMerchandiseExpectedToBeReturned_lbl1" xml:lang="en-US" id="tlfa_InventoryMerchandiseExpectedToBeReturned_lbl1">Inventory, Merchandise Expected to be Returned</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryMerchandiseExpectedToBeReturned" xlink:to="tlfa_InventoryMerchandiseExpectedToBeReturned_lbl1" xlink:title="label: InventoryMerchandiseExpectedToBeReturned to tlfa_InventoryMerchandiseExpectedToBeReturned_lbl1" />
    <link:label xlink:type="resource" xlink:label="tlfa_InventoryMerchandiseExpectedToBeReturned" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="tlfa_InventoryMerchandiseExpectedToBeReturned" xml:lang="en-US" id="tlfa_InventoryMerchandiseExpectedToBeReturned">Estimate of merchandise expected to be returned</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryMerchandiseExpectedToBeReturned" xlink:to="tlfa_InventoryMerchandiseExpectedToBeReturned" xlink:title="label: InventoryMerchandiseExpectedToBeReturned to tlfa_InventoryMerchandiseExpectedToBeReturned" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_GiftCardRedemptionPeriod" xlink:label="GiftCardRedemptionPeriod" xlink:title="GiftCardRedemptionPeriod" />
    <link:label xlink:type="resource" xlink:label="tlfa_GiftCardRedemptionPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tlfa_GiftCardRedemptionPeriod_lbl" xml:lang="en-US" id="tlfa_GiftCardRedemptionPeriod_lbl">Expected customer gift card redemption period, in PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GiftCardRedemptionPeriod" xlink:to="tlfa_GiftCardRedemptionPeriod_lbl" xlink:title="label: GiftCardRedemptionPeriod to tlfa_GiftCardRedemptionPeriod_lbl" />
    <link:label xlink:type="resource" xlink:label="tlfa_GiftCardRedemptionPeriod_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tlfa_GiftCardRedemptionPeriod_lbl1" xml:lang="en-US" id="tlfa_GiftCardRedemptionPeriod_lbl1">Gift Card Redemption Period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GiftCardRedemptionPeriod" xlink:to="tlfa_GiftCardRedemptionPeriod_lbl1" xlink:title="label: GiftCardRedemptionPeriod to tlfa_GiftCardRedemptionPeriod_lbl1" />
    <link:label xlink:type="resource" xlink:label="tlfa_GiftCardRedemptionPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tlfa_GiftCardRedemptionPeriod" xml:lang="en-US" id="tlfa_GiftCardRedemptionPeriod">Gift card redemption period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GiftCardRedemptionPeriod" xlink:to="tlfa_GiftCardRedemptionPeriod" xlink:title="label: GiftCardRedemptionPeriod to tlfa_GiftCardRedemptionPeriod" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_SHAREREPURCHASEPROGRAMANDSHAREREPURCHASESAbstract" xlink:label="SHAREREPURCHASEPROGRAMANDSHAREREPURCHASESAbstract" xlink:title="SHAREREPURCHASEPROGRAMANDSHAREREPURCHASESAbstract" />
    <link:label xlink:type="resource" xlink:label="tlfa_SHAREREPURCHASEPROGRAMANDSHAREREPURCHASESAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tlfa_SHAREREPURCHASEPROGRAMANDSHAREREPURCHASESAbstract_lbl1" xml:lang="en-US" id="tlfa_SHAREREPURCHASEPROGRAMANDSHAREREPURCHASESAbstract_lbl1">SHARE REPURCHASE PROGRAM AND SHARE REPURCHASES [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SHAREREPURCHASEPROGRAMANDSHAREREPURCHASESAbstract" xlink:to="tlfa_SHAREREPURCHASEPROGRAMANDSHAREREPURCHASESAbstract_lbl1" xlink:title="label: SHAREREPURCHASEPROGRAMANDSHAREREPURCHASESAbstract to tlfa_SHAREREPURCHASEPROGRAMANDSHAREREPURCHASESAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_ShareRepurchaseProgramAndShareRepurchasesTextBlock" xlink:label="ShareRepurchaseProgramAndShareRepurchasesTextBlock" xlink:title="ShareRepurchaseProgramAndShareRepurchasesTextBlock" />
    <link:label xlink:type="resource" xlink:label="tlfa_ShareRepurchaseProgramAndShareRepurchasesTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tlfa_ShareRepurchaseProgramAndShareRepurchasesTextBlock_lbl" xml:lang="en-US" id="tlfa_ShareRepurchaseProgramAndShareRepurchasesTextBlock_lbl">The entire disclosure for the share repurchase program and share repurchases.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareRepurchaseProgramAndShareRepurchasesTextBlock" xlink:to="tlfa_ShareRepurchaseProgramAndShareRepurchasesTextBlock_lbl" xlink:title="label: ShareRepurchaseProgramAndShareRepurchasesTextBlock to tlfa_ShareRepurchaseProgramAndShareRepurchasesTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="tlfa_ShareRepurchaseProgramAndShareRepurchasesTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tlfa_ShareRepurchaseProgramAndShareRepurchasesTextBlock_lbl1" xml:lang="en-US" id="tlfa_ShareRepurchaseProgramAndShareRepurchasesTextBlock_lbl1">Share Repurchase Program and Share Repurchases [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareRepurchaseProgramAndShareRepurchasesTextBlock" xlink:to="tlfa_ShareRepurchaseProgramAndShareRepurchasesTextBlock_lbl1" xlink:title="label: ShareRepurchaseProgramAndShareRepurchasesTextBlock to tlfa_ShareRepurchaseProgramAndShareRepurchasesTextBlock_lbl1" />
    <link:label xlink:type="resource" xlink:label="tlfa_ShareRepurchaseProgramAndShareRepurchasesTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tlfa_ShareRepurchaseProgramAndShareRepurchasesTextBlock" xml:lang="en-US" id="tlfa_ShareRepurchaseProgramAndShareRepurchasesTextBlock">SHARE REPURCHASE PROGRAM AND SHARE REPURCHASES</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareRepurchaseProgramAndShareRepurchasesTextBlock" xlink:to="tlfa_ShareRepurchaseProgramAndShareRepurchasesTextBlock" xlink:title="label: ShareRepurchaseProgramAndShareRepurchasesTextBlock to tlfa_ShareRepurchaseProgramAndShareRepurchasesTextBlock" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_StockRepurchaseProgramAbstract" xlink:label="StockRepurchaseProgramAbstract" xlink:title="StockRepurchaseProgramAbstract" />
    <link:label xlink:type="resource" xlink:label="tlfa_StockRepurchaseProgramAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tlfa_StockRepurchaseProgramAbstract_lbl1" xml:lang="en-US" id="tlfa_StockRepurchaseProgramAbstract_lbl1">Stock Repurchase Program [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockRepurchaseProgramAbstract" xlink:to="tlfa_StockRepurchaseProgramAbstract_lbl1" xlink:title="label: StockRepurchaseProgramAbstract to tlfa_StockRepurchaseProgramAbstract_lbl1" />
    <link:label xlink:type="resource" xlink:label="tlfa_StockRepurchaseProgramAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tlfa_StockRepurchaseProgramAbstract" xml:lang="en-US" id="tlfa_StockRepurchaseProgramAbstract">Share Repurchase Program and Share Repurchases [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockRepurchaseProgramAbstract" xlink:to="tlfa_StockRepurchaseProgramAbstract" xlink:title="label: StockRepurchaseProgramAbstract to tlfa_StockRepurchaseProgramAbstract" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_RestrictedStockAndRestrictedStockUnitsMember" xlink:label="RestrictedStockAndRestrictedStockUnitsMember" xlink:title="RestrictedStockAndRestrictedStockUnitsMember" />
    <link:label xlink:type="resource" xlink:label="tlfa_RestrictedStockAndRestrictedStockUnitsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tlfa_RestrictedStockAndRestrictedStockUnitsMember_lbl" xml:lang="en-US" id="tlfa_RestrictedStockAndRestrictedStockUnitsMember_lbl">Stock including a provision that prohibits sale or substantive sale of an equity instrument for a specified period of time or until specified performance conditions are met and Share instrument which is convertible to stock or an equivalent amount of cash, after a specified period of time or when specified performance conditions are met.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RestrictedStockAndRestrictedStockUnitsMember" xlink:to="tlfa_RestrictedStockAndRestrictedStockUnitsMember_lbl" xlink:title="label: RestrictedStockAndRestrictedStockUnitsMember to tlfa_RestrictedStockAndRestrictedStockUnitsMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tlfa_RestrictedStockAndRestrictedStockUnitsMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tlfa_RestrictedStockAndRestrictedStockUnitsMember_lbl1" xml:lang="en-US" id="tlfa_RestrictedStockAndRestrictedStockUnitsMember_lbl1">Restricted Stock and Restricted Stock Units [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RestrictedStockAndRestrictedStockUnitsMember" xlink:to="tlfa_RestrictedStockAndRestrictedStockUnitsMember_lbl1" xlink:title="label: RestrictedStockAndRestrictedStockUnitsMember to tlfa_RestrictedStockAndRestrictedStockUnitsMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tlfa_RestrictedStockAndRestrictedStockUnitsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tlfa_RestrictedStockAndRestrictedStockUnitsMember" xml:lang="en-US" id="tlfa_RestrictedStockAndRestrictedStockUnitsMember">Restricted Stock and RSU [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RestrictedStockAndRestrictedStockUnitsMember" xlink:to="tlfa_RestrictedStockAndRestrictedStockUnitsMember" xlink:title="label: RestrictedStockAndRestrictedStockUnitsMember to tlfa_RestrictedStockAndRestrictedStockUnitsMember" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_DiscountsAbstract" xlink:label="DiscountsAbstract" xlink:title="DiscountsAbstract" />
    <link:label xlink:type="resource" xlink:label="tlfa_DiscountsAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tlfa_DiscountsAbstract_lbl1" xml:lang="en-US" id="tlfa_DiscountsAbstract_lbl1">Discounts [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DiscountsAbstract" xlink:to="tlfa_DiscountsAbstract_lbl1" xlink:title="label: DiscountsAbstract to tlfa_DiscountsAbstract_lbl1" />
    <link:label xlink:type="resource" xlink:label="tlfa_DiscountsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tlfa_DiscountsAbstract" xml:lang="en-US" id="tlfa_DiscountsAbstract">Discounts [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DiscountsAbstract" xlink:to="tlfa_DiscountsAbstract" xlink:title="label: DiscountsAbstract to tlfa_DiscountsAbstract" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_NumberOfClassesOfCustomerDiscounts" xlink:label="NumberOfClassesOfCustomerDiscounts" xlink:title="NumberOfClassesOfCustomerDiscounts" />
    <link:label xlink:type="resource" xlink:label="tlfa_NumberOfClassesOfCustomerDiscounts_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tlfa_NumberOfClassesOfCustomerDiscounts_lbl" xml:lang="en-US" id="tlfa_NumberOfClassesOfCustomerDiscounts_lbl">Number of classes of customer discounts.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NumberOfClassesOfCustomerDiscounts" xlink:to="tlfa_NumberOfClassesOfCustomerDiscounts_lbl" xlink:title="label: NumberOfClassesOfCustomerDiscounts to tlfa_NumberOfClassesOfCustomerDiscounts_lbl" />
    <link:label xlink:type="resource" xlink:label="tlfa_NumberOfClassesOfCustomerDiscounts_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tlfa_NumberOfClassesOfCustomerDiscounts_lbl1" xml:lang="en-US" id="tlfa_NumberOfClassesOfCustomerDiscounts_lbl1">Number of Classes of Customer Discounts</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NumberOfClassesOfCustomerDiscounts" xlink:to="tlfa_NumberOfClassesOfCustomerDiscounts_lbl1" xlink:title="label: NumberOfClassesOfCustomerDiscounts to tlfa_NumberOfClassesOfCustomerDiscounts_lbl1" />
    <link:label xlink:type="resource" xlink:label="tlfa_NumberOfClassesOfCustomerDiscounts" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tlfa_NumberOfClassesOfCustomerDiscounts" xml:lang="en-US" id="tlfa_NumberOfClassesOfCustomerDiscounts">Number of classes of customer discounts</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NumberOfClassesOfCustomerDiscounts" xlink:to="tlfa_NumberOfClassesOfCustomerDiscounts" xlink:title="label: NumberOfClassesOfCustomerDiscounts to tlfa_NumberOfClassesOfCustomerDiscounts" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" xlink:label="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" xlink:title="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" />
    <link:label xlink:type="resource" xlink:label="tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear_lbl" xml:lang="en-US" id="tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear_lbl">Unrecognized cost of unvested share-based compensation awards due during the remainder of the fiscal year.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" xlink:to="tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear_lbl" xlink:title="label: EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear to tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear_lbl" />
    <link:label xlink:type="resource" xlink:label="tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear_lbl1" xml:lang="en-US" id="tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear_lbl1">Employee Service Share-based Compensation Nonvested Awards Compensation Cost Not Yet Recognized Remainder of Fiscal Year</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" xlink:to="tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear_lbl1" xlink:title="label: EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear to tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear_lbl1" />
    <link:label xlink:type="resource" xlink:label="tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" xml:lang="en-US" id="tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear">2024</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" xlink:to="tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" xlink:title="label: EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear to tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" xlink:label="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" xlink:title="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" />
    <link:label xlink:type="resource" xlink:label="tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths_lbl" xml:lang="en-US" id="tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths_lbl">Unrecognized cost of unvested share-based compensation awards in excess of one year due in the next fiscal year following the latest fiscal year.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" xlink:to="tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths_lbl" xlink:title="label: EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths to tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths_lbl" />
    <link:label xlink:type="resource" xlink:label="tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths_lbl1" xml:lang="en-US" id="tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths_lbl1">Employee Service Share-based Compensation Nonvested Awards Compensation Cost Not Yet Recognized Due In Next Twelve Months</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" xlink:to="tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths_lbl1" xlink:title="label: EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths to tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths_lbl1" />
    <link:label xlink:type="resource" xlink:label="tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" xml:lang="en-US" id="tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths">2025</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" xlink:to="tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" xlink:title="label: EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths to tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" xlink:label="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" xlink:title="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" />
    <link:label xlink:type="resource" xlink:label="tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears_lbl" xml:lang="en-US" id="tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears_lbl">Unrecognized cost of unvested share-based compensation awards in excess of one year due in the third fiscal year following the latest fiscal year.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" xlink:to="tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears_lbl" xlink:title="label: EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears to tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears_lbl" />
    <link:label xlink:type="resource" xlink:label="tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears_lbl1" xml:lang="en-US" id="tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears_lbl1">Employee Service Share-based Compensation Non-vested Awards Compensation Cost Not Yet Recognized Due In Three Years</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" xlink:to="tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears_lbl1" xlink:title="label: EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears to tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears_lbl1" />
    <link:label xlink:type="resource" xlink:label="tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" xml:lang="en-US" id="tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears">2027</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" xlink:to="tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" xlink:title="label: EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears to tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_ServicedBasedRestrictedStockUnitsRSUsMember" xlink:label="ServicedBasedRestrictedStockUnitsRSUsMember" xlink:title="ServicedBasedRestrictedStockUnitsRSUsMember" />
    <link:label xlink:type="resource" xlink:label="tlfa_ServicedBasedRestrictedStockUnitsRSUsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tlfa_ServicedBasedRestrictedStockUnitsRSUsMember_lbl" xml:lang="en-US" id="tlfa_ServicedBasedRestrictedStockUnitsRSUsMember_lbl">Share instrument which is convertible to stock or an equivalent amount of cash, after a specified period of time.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ServicedBasedRestrictedStockUnitsRSUsMember" xlink:to="tlfa_ServicedBasedRestrictedStockUnitsRSUsMember_lbl" xlink:title="label: ServicedBasedRestrictedStockUnitsRSUsMember to tlfa_ServicedBasedRestrictedStockUnitsRSUsMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tlfa_ServicedBasedRestrictedStockUnitsRSUsMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tlfa_ServicedBasedRestrictedStockUnitsRSUsMember_lbl1" xml:lang="en-US" id="tlfa_ServicedBasedRestrictedStockUnitsRSUsMember_lbl1">Serviced Based Restricted Stock Units (RSUs) [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ServicedBasedRestrictedStockUnitsRSUsMember" xlink:to="tlfa_ServicedBasedRestrictedStockUnitsRSUsMember_lbl1" xlink:title="label: ServicedBasedRestrictedStockUnitsRSUsMember to tlfa_ServicedBasedRestrictedStockUnitsRSUsMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tlfa_ServicedBasedRestrictedStockUnitsRSUsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tlfa_ServicedBasedRestrictedStockUnitsRSUsMember" xml:lang="en-US" id="tlfa_ServicedBasedRestrictedStockUnitsRSUsMember">Service-Based Restricted Stock Units [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ServicedBasedRestrictedStockUnitsRSUsMember" xlink:to="tlfa_ServicedBasedRestrictedStockUnitsRSUsMember" xlink:title="label: ServicedBasedRestrictedStockUnitsRSUsMember to tlfa_ServicedBasedRestrictedStockUnitsRSUsMember" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" xlink:label="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" xlink:title="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" />
    <link:label xlink:type="resource" xlink:label="tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears_lbl" xml:lang="en-US" id="tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears_lbl">Unrecognized cost of unvested share-based compensation awards due in excess of one year due in the second fiscal year following the latest fiscal year.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" xlink:to="tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears_lbl" xlink:title="label: EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears to tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears_lbl" />
    <link:label xlink:type="resource" xlink:label="tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears_lbl1" xml:lang="en-US" id="tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears_lbl1">Employee Service Share-based Compensation Non-vested Awards Compensation Cost Not Yet Recognized Due In Two Years</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" xlink:to="tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears_lbl1" xlink:title="label: EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears to tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears_lbl1" />
    <link:label xlink:type="resource" xlink:label="tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" xml:lang="en-US" id="tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears">2026</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" xlink:to="tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" xlink:title="label: EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears to tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_PerformanceBasedRestrictedStockUnitsRSUsMember" xlink:label="PerformanceBasedRestrictedStockUnitsRSUsMember" xlink:title="PerformanceBasedRestrictedStockUnitsRSUsMember" />
    <link:label xlink:type="resource" xlink:label="tlfa_PerformanceBasedRestrictedStockUnitsRSUsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tlfa_PerformanceBasedRestrictedStockUnitsRSUsMember_lbl" xml:lang="en-US" id="tlfa_PerformanceBasedRestrictedStockUnitsRSUsMember_lbl">Share instrument which is convertible to stock or an equivalent amount of cash, when specified performance conditions are met.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PerformanceBasedRestrictedStockUnitsRSUsMember" xlink:to="tlfa_PerformanceBasedRestrictedStockUnitsRSUsMember_lbl" xlink:title="label: PerformanceBasedRestrictedStockUnitsRSUsMember to tlfa_PerformanceBasedRestrictedStockUnitsRSUsMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tlfa_PerformanceBasedRestrictedStockUnitsRSUsMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tlfa_PerformanceBasedRestrictedStockUnitsRSUsMember_lbl1" xml:lang="en-US" id="tlfa_PerformanceBasedRestrictedStockUnitsRSUsMember_lbl1">Performance Based Restricted Stock Units (RSUs) [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PerformanceBasedRestrictedStockUnitsRSUsMember" xlink:to="tlfa_PerformanceBasedRestrictedStockUnitsRSUsMember_lbl1" xlink:title="label: PerformanceBasedRestrictedStockUnitsRSUsMember to tlfa_PerformanceBasedRestrictedStockUnitsRSUsMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tlfa_PerformanceBasedRestrictedStockUnitsRSUsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tlfa_PerformanceBasedRestrictedStockUnitsRSUsMember" xml:lang="en-US" id="tlfa_PerformanceBasedRestrictedStockUnitsRSUsMember">Performance-Based Restricted Stock Units [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PerformanceBasedRestrictedStockUnitsRSUsMember" xlink:to="tlfa_PerformanceBasedRestrictedStockUnitsRSUsMember" xlink:title="label: PerformanceBasedRestrictedStockUnitsRSUsMember to tlfa_PerformanceBasedRestrictedStockUnitsRSUsMember" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_TwoThousandAndTwentyThreeRestrictedStockPlanMember" xlink:label="TwoThousandAndTwentyThreeRestrictedStockPlanMember" xlink:title="TwoThousandAndTwentyThreeRestrictedStockPlanMember" />
    <link:label xlink:type="resource" xlink:label="tlfa_TwoThousandAndTwentyThreeRestrictedStockPlanMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tlfa_TwoThousandAndTwentyThreeRestrictedStockPlanMember_lbl" xml:lang="en-US" id="tlfa_TwoThousandAndTwentyThreeRestrictedStockPlanMember_lbl">Refers to 2023 Restricted stock plan.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TwoThousandAndTwentyThreeRestrictedStockPlanMember" xlink:to="tlfa_TwoThousandAndTwentyThreeRestrictedStockPlanMember_lbl" xlink:title="label: TwoThousandAndTwentyThreeRestrictedStockPlanMember to tlfa_TwoThousandAndTwentyThreeRestrictedStockPlanMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tlfa_TwoThousandAndTwentyThreeRestrictedStockPlanMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tlfa_TwoThousandAndTwentyThreeRestrictedStockPlanMember_lbl1" xml:lang="en-US" id="tlfa_TwoThousandAndTwentyThreeRestrictedStockPlanMember_lbl1">Two Thousand and Twenty Three Restricted Stock Plan [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TwoThousandAndTwentyThreeRestrictedStockPlanMember" xlink:to="tlfa_TwoThousandAndTwentyThreeRestrictedStockPlanMember_lbl1" xlink:title="label: TwoThousandAndTwentyThreeRestrictedStockPlanMember to tlfa_TwoThousandAndTwentyThreeRestrictedStockPlanMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tlfa_TwoThousandAndTwentyThreeRestrictedStockPlanMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tlfa_TwoThousandAndTwentyThreeRestrictedStockPlanMember" xml:lang="en-US" id="tlfa_TwoThousandAndTwentyThreeRestrictedStockPlanMember">2023 Restricted Stock Plan [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TwoThousandAndTwentyThreeRestrictedStockPlanMember" xlink:to="tlfa_TwoThousandAndTwentyThreeRestrictedStockPlanMember" xlink:title="label: TwoThousandAndTwentyThreeRestrictedStockPlanMember to tlfa_TwoThousandAndTwentyThreeRestrictedStockPlanMember" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_TwoThousandAndThirteenRestrictedStockPlanMember" xlink:label="TwoThousandAndThirteenRestrictedStockPlanMember" xlink:title="TwoThousandAndThirteenRestrictedStockPlanMember" />
    <link:label xlink:type="resource" xlink:label="tlfa_TwoThousandAndThirteenRestrictedStockPlanMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tlfa_TwoThousandAndThirteenRestrictedStockPlanMember_lbl" xml:lang="en-US" id="tlfa_TwoThousandAndThirteenRestrictedStockPlanMember_lbl">Refers to 2013 Restricted stock plan.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TwoThousandAndThirteenRestrictedStockPlanMember" xlink:to="tlfa_TwoThousandAndThirteenRestrictedStockPlanMember_lbl" xlink:title="label: TwoThousandAndThirteenRestrictedStockPlanMember to tlfa_TwoThousandAndThirteenRestrictedStockPlanMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tlfa_TwoThousandAndThirteenRestrictedStockPlanMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tlfa_TwoThousandAndThirteenRestrictedStockPlanMember_lbl1" xml:lang="en-US" id="tlfa_TwoThousandAndThirteenRestrictedStockPlanMember_lbl1">Two Thousand and Thirteen Restricted Stock Plan [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TwoThousandAndThirteenRestrictedStockPlanMember" xlink:to="tlfa_TwoThousandAndThirteenRestrictedStockPlanMember_lbl1" xlink:title="label: TwoThousandAndThirteenRestrictedStockPlanMember to tlfa_TwoThousandAndThirteenRestrictedStockPlanMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tlfa_TwoThousandAndThirteenRestrictedStockPlanMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tlfa_TwoThousandAndThirteenRestrictedStockPlanMember" xml:lang="en-US" id="tlfa_TwoThousandAndThirteenRestrictedStockPlanMember">2013 Restricted Stock Plan [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TwoThousandAndThirteenRestrictedStockPlanMember" xlink:to="tlfa_TwoThousandAndThirteenRestrictedStockPlanMember" xlink:title="label: TwoThousandAndThirteenRestrictedStockPlanMember to tlfa_TwoThousandAndThirteenRestrictedStockPlanMember" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_AccountsReceivableAndExpectedCreditLossesAbstract" xlink:label="AccountsReceivableAndExpectedCreditLossesAbstract" xlink:title="AccountsReceivableAndExpectedCreditLossesAbstract" />
    <link:label xlink:type="resource" xlink:label="tlfa_AccountsReceivableAndExpectedCreditLossesAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tlfa_AccountsReceivableAndExpectedCreditLossesAbstract_lbl1" xml:lang="en-US" id="tlfa_AccountsReceivableAndExpectedCreditLossesAbstract_lbl1">Accounts Receivable And Expected Credit Losses [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccountsReceivableAndExpectedCreditLossesAbstract" xlink:to="tlfa_AccountsReceivableAndExpectedCreditLossesAbstract_lbl1" xlink:title="label: AccountsReceivableAndExpectedCreditLossesAbstract to tlfa_AccountsReceivableAndExpectedCreditLossesAbstract_lbl1" />
    <link:label xlink:type="resource" xlink:label="tlfa_AccountsReceivableAndExpectedCreditLossesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tlfa_AccountsReceivableAndExpectedCreditLossesAbstract" xml:lang="en-US" id="tlfa_AccountsReceivableAndExpectedCreditLossesAbstract">Accounts Receivable and Expected Credit Losses [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccountsReceivableAndExpectedCreditLossesAbstract" xlink:to="tlfa_AccountsReceivableAndExpectedCreditLossesAbstract" xlink:title="label: AccountsReceivableAndExpectedCreditLossesAbstract to tlfa_AccountsReceivableAndExpectedCreditLossesAbstract" />
  </link:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>8
<FILENAME>tlfa-20240331_pre.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii"?>
<!--Generated by Broadridge PROfile 24.3.1.5224 Broadridge-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrli="http://www.xbrl.org/2003/instance">
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/netLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedNetLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedNetLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodEndLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodEndLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodStartLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodStartLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel" />
  <link:roleRef roleURI="http://tandyleather.com/role/ShareRepurchaseProgramAndShareRepurchasesDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#ShareRepurchaseProgramAndShareRepurchasesDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/EarningsPerShareDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#EarningsPerShareDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/StockbasedCompensationSummaryOfActivityForNonvestedRestrictedStockUnitAwardsDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#StockbasedCompensationSummaryOfActivityForNonvestedRestrictedStockUnitAwardsDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#StockbasedCompensation2013And2023RestrictedStockPlansDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/IncomeTaxDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#IncomeTaxDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/NotesPayableAndLongtermDebtDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#NotesPayableAndLongtermDebtDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesOtherIntangibleAssetsDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#BasisOfPresentationAndCertainSignificantAccountingPoliciesOtherIntangibleAssetsDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesAccountsReceivableAndExpectedCreditLossesDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#BasisOfPresentationAndCertainSignificantAccountingPoliciesAccountsReceivableAndExpectedCreditLossesDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesFairValueOfFinancialInstrumentsDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#BasisOfPresentationAndCertainSignificantAccountingPoliciesFairValueOfFinancialInstrumentsDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesInventoryDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#BasisOfPresentationAndCertainSignificantAccountingPoliciesInventoryDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPropertyAndEquipmentNetOfAccumulatedDepreciationDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#BasisOfPresentationAndCertainSignificantAccountingPoliciesPropertyAndEquipmentNetOfAccumulatedDepreciationDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesDiscountsDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#BasisOfPresentationAndCertainSignificantAccountingPoliciesDiscountsDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesBasisOfPresentationDetails" xlink:type="simple" xlink:href="tlfa-20240331.xsd#BasisOfPresentationAndCertainSignificantAccountingPoliciesBasisOfPresentationDetails" />
  <link:roleRef roleURI="http://tandyleather.com/role/EarningsPerShareTables" xlink:type="simple" xlink:href="tlfa-20240331.xsd#EarningsPerShareTables" />
  <link:roleRef roleURI="http://tandyleather.com/role/StockbasedCompensationTables" xlink:type="simple" xlink:href="tlfa-20240331.xsd#StockbasedCompensationTables" />
  <link:roleRef roleURI="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesTables" xlink:type="simple" xlink:href="tlfa-20240331.xsd#BasisOfPresentationAndCertainSignificantAccountingPoliciesTables" />
  <link:roleRef roleURI="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPolicies" xlink:type="simple" xlink:href="tlfa-20240331.xsd#BasisOfPresentationAndCertainSignificantAccountingPoliciesPolicies" />
  <link:roleRef roleURI="http://tandyleather.com/role/ShareRepurchaseProgramAndShareRepurchases" xlink:type="simple" xlink:href="tlfa-20240331.xsd#ShareRepurchaseProgramAndShareRepurchases" />
  <link:roleRef roleURI="http://tandyleather.com/role/CommitmentsAndContingencies" xlink:type="simple" xlink:href="tlfa-20240331.xsd#CommitmentsAndContingencies" />
  <link:roleRef roleURI="http://tandyleather.com/role/EarningsPerShare" xlink:type="simple" xlink:href="tlfa-20240331.xsd#EarningsPerShare" />
  <link:roleRef roleURI="http://tandyleather.com/role/StockbasedCompensation" xlink:type="simple" xlink:href="tlfa-20240331.xsd#StockbasedCompensation" />
  <link:roleRef roleURI="http://tandyleather.com/role/IncomeTax" xlink:type="simple" xlink:href="tlfa-20240331.xsd#IncomeTax" />
  <link:roleRef roleURI="http://tandyleather.com/role/NotesPayableAndLongtermDebt" xlink:type="simple" xlink:href="tlfa-20240331.xsd#NotesPayableAndLongtermDebt" />
  <link:roleRef roleURI="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPolicies" xlink:type="simple" xlink:href="tlfa-20240331.xsd#BasisOfPresentationAndCertainSignificantAccountingPolicies" />
  <link:roleRef roleURI="http://tandyleather.com/role/CondensedConsolidatedStatementsOfStockholdersEquity" xlink:type="simple" xlink:href="tlfa-20240331.xsd#CondensedConsolidatedStatementsOfStockholdersEquity" />
  <link:roleRef roleURI="http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows" xlink:type="simple" xlink:href="tlfa-20240331.xsd#CondensedConsolidatedStatementsOfCashFlows" />
  <link:roleRef roleURI="http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome" xlink:type="simple" xlink:href="tlfa-20240331.xsd#CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome" />
  <link:roleRef roleURI="http://tandyleather.com/role/CondensedConsolidatedBalanceSheetsParenthetical" xlink:type="simple" xlink:href="tlfa-20240331.xsd#CondensedConsolidatedBalanceSheetsParenthetical" />
  <link:roleRef roleURI="http://tandyleather.com/role/CondensedConsolidatedBalanceSheets" xlink:type="simple" xlink:href="tlfa-20240331.xsd#CondensedConsolidatedBalanceSheets" />
  <link:roleRef roleURI="http://tandyleather.com/role/DocumentAndEntityInformation" xlink:type="simple" xlink:href="tlfa-20240331.xsd#DocumentAndEntityInformation" />
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/DocumentAndEntityInformation">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CoverAbstract" xlink:label="CoverAbstract" xlink:title="CoverAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentType" xlink:label="DocumentType" xlink:title="DocumentType" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="DocumentType" xlink:title="presentation: CoverAbstract to DocumentType" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AmendmentFlag" xlink:label="AmendmentFlag" xlink:title="AmendmentFlag" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="AmendmentFlag" xlink:title="presentation: CoverAbstract to AmendmentFlag" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentQuarterlyReport" xlink:label="DocumentQuarterlyReport" xlink:title="DocumentQuarterlyReport" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="DocumentQuarterlyReport" xlink:title="presentation: CoverAbstract to DocumentQuarterlyReport" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentPeriodEndDate" xlink:label="DocumentPeriodEndDate" xlink:title="DocumentPeriodEndDate" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="DocumentPeriodEndDate" xlink:title="presentation: CoverAbstract to DocumentPeriodEndDate" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CurrentFiscalYearEndDate" xlink:label="CurrentFiscalYearEndDate" xlink:title="CurrentFiscalYearEndDate" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="CurrentFiscalYearEndDate" xlink:title="presentation: CoverAbstract to CurrentFiscalYearEndDate" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFiscalYearFocus" xlink:label="DocumentFiscalYearFocus" xlink:title="DocumentFiscalYearFocus" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="DocumentFiscalYearFocus" xlink:title="presentation: CoverAbstract to DocumentFiscalYearFocus" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="DocumentFiscalPeriodFocus" xlink:title="DocumentFiscalPeriodFocus" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="DocumentFiscalPeriodFocus" xlink:title="presentation: CoverAbstract to DocumentFiscalPeriodFocus" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentTransitionReport" xlink:label="DocumentTransitionReport" xlink:title="DocumentTransitionReport" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="DocumentTransitionReport" xlink:title="presentation: CoverAbstract to DocumentTransitionReport" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityFileNumber" xlink:label="EntityFileNumber" xlink:title="EntityFileNumber" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityFileNumber" xlink:title="presentation: CoverAbstract to EntityFileNumber" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityRegistrantName" xlink:label="EntityRegistrantName" xlink:title="EntityRegistrantName" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityRegistrantName" xlink:title="presentation: CoverAbstract to EntityRegistrantName" order="9.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCentralIndexKey" xlink:label="EntityCentralIndexKey" xlink:title="EntityCentralIndexKey" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityCentralIndexKey" xlink:title="presentation: CoverAbstract to EntityCentralIndexKey" order="10.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="EntityIncorporationStateCountryCode" xlink:title="EntityIncorporationStateCountryCode" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityIncorporationStateCountryCode" xlink:title="presentation: CoverAbstract to EntityIncorporationStateCountryCode" order="11.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityTaxIdentificationNumber" xlink:label="EntityTaxIdentificationNumber" xlink:title="EntityTaxIdentificationNumber" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityTaxIdentificationNumber" xlink:title="presentation: CoverAbstract to EntityTaxIdentificationNumber" order="12.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressAddressLine1" xlink:label="EntityAddressAddressLine1" xlink:title="EntityAddressAddressLine1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityAddressAddressLine1" xlink:title="presentation: CoverAbstract to EntityAddressAddressLine1" order="13.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressCityOrTown" xlink:label="EntityAddressCityOrTown" xlink:title="EntityAddressCityOrTown" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityAddressCityOrTown" xlink:title="presentation: CoverAbstract to EntityAddressCityOrTown" order="14.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressStateOrProvince" xlink:label="EntityAddressStateOrProvince" xlink:title="EntityAddressStateOrProvince" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityAddressStateOrProvince" xlink:title="presentation: CoverAbstract to EntityAddressStateOrProvince" order="15.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressPostalZipCode" xlink:label="EntityAddressPostalZipCode" xlink:title="EntityAddressPostalZipCode" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityAddressPostalZipCode" xlink:title="presentation: CoverAbstract to EntityAddressPostalZipCode" order="16.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CityAreaCode" xlink:label="CityAreaCode" xlink:title="CityAreaCode" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="CityAreaCode" xlink:title="presentation: CoverAbstract to CityAreaCode" order="17.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_LocalPhoneNumber" xlink:label="LocalPhoneNumber" xlink:title="LocalPhoneNumber" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="LocalPhoneNumber" xlink:title="presentation: CoverAbstract to LocalPhoneNumber" order="18.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_Security12bTitle" xlink:label="Security12bTitle" xlink:title="Security12bTitle" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="Security12bTitle" xlink:title="presentation: CoverAbstract to Security12bTitle" order="19.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_TradingSymbol" xlink:label="TradingSymbol" xlink:title="TradingSymbol" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="TradingSymbol" xlink:title="presentation: CoverAbstract to TradingSymbol" order="20.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_SecurityExchangeName" xlink:label="SecurityExchangeName" xlink:title="SecurityExchangeName" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="SecurityExchangeName" xlink:title="presentation: CoverAbstract to SecurityExchangeName" order="21.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCurrentReportingStatus" xlink:label="EntityCurrentReportingStatus" xlink:title="EntityCurrentReportingStatus" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityCurrentReportingStatus" xlink:title="presentation: CoverAbstract to EntityCurrentReportingStatus" order="22.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityInteractiveDataCurrent" xlink:label="EntityInteractiveDataCurrent" xlink:title="EntityInteractiveDataCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityInteractiveDataCurrent" xlink:title="presentation: CoverAbstract to EntityInteractiveDataCurrent" order="23.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityFilerCategory" xlink:label="EntityFilerCategory" xlink:title="EntityFilerCategory" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityFilerCategory" xlink:title="presentation: CoverAbstract to EntityFilerCategory" order="24.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntitySmallBusiness" xlink:label="EntitySmallBusiness" xlink:title="EntitySmallBusiness" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntitySmallBusiness" xlink:title="presentation: CoverAbstract to EntitySmallBusiness" order="25.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityEmergingGrowthCompany" xlink:label="EntityEmergingGrowthCompany" xlink:title="EntityEmergingGrowthCompany" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityEmergingGrowthCompany" xlink:title="presentation: CoverAbstract to EntityEmergingGrowthCompany" order="26.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityShellCompany" xlink:label="EntityShellCompany" xlink:title="EntityShellCompany" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityShellCompany" xlink:title="presentation: CoverAbstract to EntityShellCompany" order="27.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="EntityCommonStockSharesOutstanding" xlink:title="EntityCommonStockSharesOutstanding" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityCommonStockSharesOutstanding" xlink:title="presentation: CoverAbstract to EntityCommonStockSharesOutstanding" order="28.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/CondensedConsolidatedBalanceSheets">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="StatementOfFinancialPositionAbstract" xlink:title="StatementOfFinancialPositionAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsAbstract" xlink:label="AssetsAbstract" xlink:title="AssetsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="AssetsCurrentAbstract" xlink:title="AssetsCurrentAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="CashAndCashEquivalentsAtCarryingValue" xlink:title="CashAndCashEquivalentsAtCarryingValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsCurrentAbstract" xlink:to="CashAndCashEquivalentsAtCarryingValue" xlink:title="presentation: AssetsCurrentAbstract to CashAndCashEquivalentsAtCarryingValue" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="AccountsReceivableNetCurrent" xlink:title="AccountsReceivableNetCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsCurrentAbstract" xlink:to="AccountsReceivableNetCurrent" xlink:title="presentation: AssetsCurrentAbstract to AccountsReceivableNetCurrent" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNet" xlink:label="InventoryNet" xlink:title="InventoryNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsCurrentAbstract" xlink:to="InventoryNet" xlink:title="presentation: AssetsCurrentAbstract to InventoryNet" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxesReceivable" xlink:label="IncomeTaxesReceivable" xlink:title="IncomeTaxesReceivable" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsCurrentAbstract" xlink:to="IncomeTaxesReceivable" xlink:title="presentation: AssetsCurrentAbstract to IncomeTaxesReceivable" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="PrepaidExpenseCurrent" xlink:title="PrepaidExpenseCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsCurrentAbstract" xlink:to="PrepaidExpenseCurrent" xlink:title="presentation: AssetsCurrentAbstract to PrepaidExpenseCurrent" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAssetsCurrent" xlink:label="OtherAssetsCurrent" xlink:title="OtherAssetsCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsCurrentAbstract" xlink:to="OtherAssetsCurrent" xlink:title="presentation: AssetsCurrentAbstract to OtherAssetsCurrent" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrent" xlink:label="AssetsCurrent" xlink:title="AssetsCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsCurrentAbstract" xlink:to="AssetsCurrent" xlink:title="presentation: AssetsCurrentAbstract to AssetsCurrent" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="AssetsCurrentAbstract" xlink:title="presentation: AssetsAbstract to AssetsCurrentAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="PropertyPlantAndEquipmentGross" xlink:title="PropertyPlantAndEquipmentGross" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="PropertyPlantAndEquipmentGross" xlink:title="presentation: AssetsAbstract to PropertyPlantAndEquipmentGross" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:title="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:title="presentation: AssetsAbstract to AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" order="2.0" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="PropertyPlantAndEquipmentNet" xlink:title="PropertyPlantAndEquipmentNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="PropertyPlantAndEquipmentNet" xlink:title="presentation: AssetsAbstract to PropertyPlantAndEquipmentNet" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="OperatingLeaseRightOfUseAsset" xlink:title="OperatingLeaseRightOfUseAsset" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="OperatingLeaseRightOfUseAsset" xlink:title="presentation: AssetsAbstract to OperatingLeaseRightOfUseAsset" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinanceLeaseRightOfUseAsset" xlink:label="FinanceLeaseRightOfUseAsset" xlink:title="FinanceLeaseRightOfUseAsset" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="FinanceLeaseRightOfUseAsset" xlink:title="presentation: AssetsAbstract to FinanceLeaseRightOfUseAsset" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="DeferredIncomeTaxAssetsNet" xlink:title="DeferredIncomeTaxAssetsNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="DeferredIncomeTaxAssetsNet" xlink:title="presentation: AssetsAbstract to DeferredIncomeTaxAssetsNet" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="OtherAssetsNoncurrent" xlink:title="OtherAssetsNoncurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="OtherAssetsNoncurrent" xlink:title="presentation: AssetsAbstract to OtherAssetsNoncurrent" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Assets" xlink:label="Assets" xlink:title="Assets" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="Assets" xlink:title="presentation: AssetsAbstract to Assets" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfFinancialPositionAbstract" xlink:to="AssetsAbstract" xlink:title="presentation: StatementOfFinancialPositionAbstract to AssetsAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="LiabilitiesAndStockholdersEquityAbstract" xlink:title="LiabilitiesAndStockholdersEquityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="LiabilitiesCurrentAbstract" xlink:title="LiabilitiesCurrentAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableTradeCurrent" xlink:label="AccountsPayableTradeCurrent" xlink:title="AccountsPayableTradeCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesCurrentAbstract" xlink:to="AccountsPayableTradeCurrent" xlink:title="presentation: LiabilitiesCurrentAbstract to AccountsPayableTradeCurrent" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:label="AccruedLiabilitiesAndOtherLiabilities" xlink:title="AccruedLiabilitiesAndOtherLiabilities" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesCurrentAbstract" xlink:to="AccruedLiabilitiesAndOtherLiabilities" xlink:title="presentation: LiabilitiesCurrentAbstract to AccruedLiabilitiesAndOtherLiabilities" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TaxesPayableCurrent" xlink:label="TaxesPayableCurrent" xlink:title="TaxesPayableCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesCurrentAbstract" xlink:to="TaxesPayableCurrent" xlink:title="presentation: LiabilitiesCurrentAbstract to TaxesPayableCurrent" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="OperatingLeaseLiabilityCurrent" xlink:title="OperatingLeaseLiabilityCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesCurrentAbstract" xlink:to="OperatingLeaseLiabilityCurrent" xlink:title="presentation: LiabilitiesCurrentAbstract to OperatingLeaseLiabilityCurrent" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesCurrent" xlink:label="LiabilitiesCurrent" xlink:title="LiabilitiesCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesCurrentAbstract" xlink:to="LiabilitiesCurrent" xlink:title="presentation: LiabilitiesCurrentAbstract to LiabilitiesCurrent" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="LiabilitiesCurrentAbstract" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to LiabilitiesCurrentAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="DeferredIncomeTaxLiabilitiesNet" xlink:title="DeferredIncomeTaxLiabilitiesNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="DeferredIncomeTaxLiabilitiesNet" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to DeferredIncomeTaxLiabilitiesNet" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:label="LiabilityForUncertainTaxPositionsNoncurrent" xlink:title="LiabilityForUncertainTaxPositionsNoncurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="LiabilityForUncertainTaxPositionsNoncurrent" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to LiabilityForUncertainTaxPositionsNoncurrent" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="OtherLiabilitiesNoncurrent" xlink:title="OtherLiabilitiesNoncurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="OtherLiabilitiesNoncurrent" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to OtherLiabilitiesNoncurrent" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="OperatingLeaseLiabilityNoncurrent" xlink:title="OperatingLeaseLiabilityNoncurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="OperatingLeaseLiabilityNoncurrent" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to OperatingLeaseLiabilityNoncurrent" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinanceLeaseLiabilityNoncurrent" xlink:label="FinanceLeaseLiabilityNoncurrent" xlink:title="FinanceLeaseLiabilityNoncurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="FinanceLeaseLiabilityNoncurrent" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to FinanceLeaseLiabilityNoncurrent" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="CommitmentsAndContingencies" xlink:title="CommitmentsAndContingencies" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="CommitmentsAndContingencies" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to CommitmentsAndContingencies" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="StockholdersEquityAbstract" xlink:title="StockholdersEquityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockValue" xlink:label="CommonStockValue" xlink:title="CommonStockValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="CommonStockValue" xlink:title="presentation: StockholdersEquityAbstract to CommonStockValue" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="AdditionalPaidInCapital" xlink:title="AdditionalPaidInCapital" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="AdditionalPaidInCapital" xlink:title="presentation: StockholdersEquityAbstract to AdditionalPaidInCapital" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="RetainedEarningsAccumulatedDeficit" xlink:title="RetainedEarningsAccumulatedDeficit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="RetainedEarningsAccumulatedDeficit" xlink:title="presentation: StockholdersEquityAbstract to RetainedEarningsAccumulatedDeficit" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TreasuryStockCommonValue" xlink:label="TreasuryStockCommonValue" xlink:title="TreasuryStockCommonValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="TreasuryStockCommonValue" xlink:title="presentation: StockholdersEquityAbstract to TreasuryStockCommonValue" order="3.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:title="AccumulatedOtherComprehensiveIncomeLossNetOfTax" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:title="presentation: StockholdersEquityAbstract to AccumulatedOtherComprehensiveIncomeLossNetOfTax" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity" xlink:label="StockholdersEquity" xlink:title="StockholdersEquity" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="StockholdersEquity" xlink:title="presentation: StockholdersEquityAbstract to StockholdersEquity" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="StockholdersEquityAbstract" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to StockholdersEquityAbstract" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="LiabilitiesAndStockholdersEquity" xlink:title="LiabilitiesAndStockholdersEquity" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="LiabilitiesAndStockholdersEquity" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to LiabilitiesAndStockholdersEquity" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfFinancialPositionAbstract" xlink:to="LiabilitiesAndStockholdersEquityAbstract" xlink:title="presentation: StatementOfFinancialPositionAbstract to LiabilitiesAndStockholdersEquityAbstract" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/CondensedConsolidatedBalanceSheetsParenthetical">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="StatementOfFinancialPositionAbstract" xlink:title="StatementOfFinancialPositionAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsAbstract" xlink:label="AssetsAbstract" xlink:title="AssetsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="AssetsCurrentAbstract" xlink:title="AssetsCurrentAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="AllowanceForDoubtfulAccountsReceivableCurrent" xlink:title="AllowanceForDoubtfulAccountsReceivableCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsCurrentAbstract" xlink:to="AllowanceForDoubtfulAccountsReceivableCurrent" xlink:title="presentation: AssetsCurrentAbstract to AllowanceForDoubtfulAccountsReceivableCurrent" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="AssetsCurrentAbstract" xlink:title="presentation: AssetsAbstract to AssetsCurrentAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfFinancialPositionAbstract" xlink:to="AssetsAbstract" xlink:title="presentation: StatementOfFinancialPositionAbstract to AssetsAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="LiabilitiesAndStockholdersEquityAbstract" xlink:title="LiabilitiesAndStockholdersEquityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="StockholdersEquityAbstract" xlink:title="StockholdersEquityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="CommonStockParOrStatedValuePerShare" xlink:title="CommonStockParOrStatedValuePerShare" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="CommonStockParOrStatedValuePerShare" xlink:title="presentation: StockholdersEquityAbstract to CommonStockParOrStatedValuePerShare" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="CommonStockSharesAuthorized" xlink:title="CommonStockSharesAuthorized" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="CommonStockSharesAuthorized" xlink:title="presentation: StockholdersEquityAbstract to CommonStockSharesAuthorized" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesIssued" xlink:label="CommonStockSharesIssued" xlink:title="CommonStockSharesIssued" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="CommonStockSharesIssued" xlink:title="presentation: StockholdersEquityAbstract to CommonStockSharesIssued" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="CommonStockSharesOutstanding" xlink:title="CommonStockSharesOutstanding" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="CommonStockSharesOutstanding" xlink:title="presentation: StockholdersEquityAbstract to CommonStockSharesOutstanding" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TreasuryStockCommonShares" xlink:label="TreasuryStockCommonShares" xlink:title="TreasuryStockCommonShares" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="TreasuryStockCommonShares" xlink:title="presentation: StockholdersEquityAbstract to TreasuryStockCommonShares" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="StockholdersEquityAbstract" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to StockholdersEquityAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfFinancialPositionAbstract" xlink:to="LiabilitiesAndStockholdersEquityAbstract" xlink:title="presentation: StatementOfFinancialPositionAbstract to LiabilitiesAndStockholdersEquityAbstract" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementAbstract" xlink:label="IncomeStatementAbstract" xlink:title="IncomeStatementAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="presentation: IncomeStatementAbstract to RevenueFromContractWithCustomerExcludingAssessedTax" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="CostOfGoodsAndServicesSold" xlink:title="CostOfGoodsAndServicesSold" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="CostOfGoodsAndServicesSold" xlink:title="presentation: IncomeStatementAbstract to CostOfGoodsAndServicesSold" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GrossProfit" xlink:label="GrossProfit" xlink:title="GrossProfit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="GrossProfit" xlink:title="presentation: IncomeStatementAbstract to GrossProfit" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingCostsAndExpenses" xlink:label="OperatingCostsAndExpenses" xlink:title="OperatingCostsAndExpenses" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="OperatingCostsAndExpenses" xlink:title="presentation: IncomeStatementAbstract to OperatingCostsAndExpenses" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingIncomeLoss" xlink:label="OperatingIncomeLoss" xlink:title="OperatingIncomeLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="OperatingIncomeLoss" xlink:title="presentation: IncomeStatementAbstract to OperatingIncomeLoss" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingIncomeLossAbstract" xlink:label="OperatingIncomeLossAbstract" xlink:title="OperatingIncomeLossAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InterestIncomeExpenseNet" xlink:label="InterestIncomeExpenseNet" xlink:title="InterestIncomeExpenseNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingIncomeLossAbstract" xlink:to="InterestIncomeExpenseNet" xlink:title="presentation: OperatingIncomeLossAbstract to InterestIncomeExpenseNet" order="0.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="OtherNonoperatingIncomeExpense" xlink:title="OtherNonoperatingIncomeExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingIncomeLossAbstract" xlink:to="OtherNonoperatingIncomeExpense" xlink:title="presentation: OperatingIncomeLossAbstract to OtherNonoperatingIncomeExpense" order="1.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NonoperatingIncomeExpense" xlink:label="NonoperatingIncomeExpense" xlink:title="NonoperatingIncomeExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingIncomeLossAbstract" xlink:to="NonoperatingIncomeExpense" xlink:title="presentation: OperatingIncomeLossAbstract to NonoperatingIncomeExpense" order="2.0" preferredLabel="http://www.xbrl.org/2009/role/negatedTotalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="OperatingIncomeLossAbstract" xlink:title="presentation: IncomeStatementAbstract to OperatingIncomeLossAbstract" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:title="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:title="presentation: IncomeStatementAbstract to IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="IncomeTaxExpenseBenefit" xlink:title="IncomeTaxExpenseBenefit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="IncomeTaxExpenseBenefit" xlink:title="presentation: IncomeStatementAbstract to IncomeTaxExpenseBenefit" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="NetIncomeLoss" xlink:title="presentation: IncomeStatementAbstract to NetIncomeLoss" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="presentation: IncomeStatementAbstract to OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" order="9.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xlink:label="ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xlink:title="ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xlink:title="presentation: IncomeStatementAbstract to ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" order="10.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="EarningsPerShareAbstract" xlink:title="EarningsPerShareAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareBasic" xlink:label="EarningsPerShareBasic" xlink:title="EarningsPerShareBasic" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="EarningsPerShareBasic" xlink:title="presentation: EarningsPerShareAbstract to EarningsPerShareBasic" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="EarningsPerShareDiluted" xlink:title="EarningsPerShareDiluted" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="EarningsPerShareDiluted" xlink:title="presentation: EarningsPerShareAbstract to EarningsPerShareDiluted" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="EarningsPerShareAbstract" xlink:title="presentation: IncomeStatementAbstract to EarningsPerShareAbstract" order="11.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="WeightedAverageNumberOfSharesOutstandingAbstract" xlink:title="WeightedAverageNumberOfSharesOutstandingAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="WeightedAverageNumberOfSharesOutstandingBasic" xlink:title="WeightedAverageNumberOfSharesOutstandingBasic" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="WeightedAverageNumberOfSharesOutstandingBasic" xlink:title="presentation: WeightedAverageNumberOfSharesOutstandingAbstract to WeightedAverageNumberOfSharesOutstandingBasic" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:title="WeightedAverageNumberOfDilutedSharesOutstanding" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:title="presentation: WeightedAverageNumberOfSharesOutstandingAbstract to WeightedAverageNumberOfDilutedSharesOutstanding" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="WeightedAverageNumberOfSharesOutstandingAbstract" xlink:title="presentation: IncomeStatementAbstract to WeightedAverageNumberOfSharesOutstandingAbstract" order="12.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="StatementOfCashFlowsAbstract" xlink:title="StatementOfCashFlowsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:title="NetCashProvidedByUsedInOperatingActivitiesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="NetIncomeLoss" xlink:title="presentation: NetCashProvidedByUsedInOperatingActivitiesAbstract to NetIncomeLoss" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:title="AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostOfGoodsAndServicesSoldDepreciation" xlink:label="CostOfGoodsAndServicesSoldDepreciation" xlink:title="CostOfGoodsAndServicesSoldDepreciation" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="CostOfGoodsAndServicesSoldDepreciation" xlink:title="presentation: AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract to CostOfGoodsAndServicesSoldDepreciation" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:label="OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:title="OperatingLeaseRightOfUseAssetAmortizationExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:title="presentation: AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract to OperatingLeaseRightOfUseAssetAmortizationExpense" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GainLossOnDispositionOfAssets1" xlink:label="GainLossOnDispositionOfAssets1" xlink:title="GainLossOnDispositionOfAssets1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="GainLossOnDispositionOfAssets1" xlink:title="presentation: AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract to GainLossOnDispositionOfAssets1" order="2.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensation" xlink:label="ShareBasedCompensation" xlink:title="ShareBasedCompensation" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="ShareBasedCompensation" xlink:title="presentation: AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract to ShareBasedCompensation" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="IncreaseDecreaseInOperatingCapitalAbstract" xlink:title="IncreaseDecreaseInOperatingCapitalAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="IncreaseDecreaseInAccountsReceivable" xlink:title="IncreaseDecreaseInAccountsReceivable" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="IncreaseDecreaseInAccountsReceivable" xlink:title="presentation: IncreaseDecreaseInOperatingCapitalAbstract to IncreaseDecreaseInAccountsReceivable" order="0.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="IncreaseDecreaseInInventories" xlink:title="IncreaseDecreaseInInventories" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="IncreaseDecreaseInInventories" xlink:title="presentation: IncreaseDecreaseInOperatingCapitalAbstract to IncreaseDecreaseInInventories" order="1.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:label="IncreaseDecreaseInPrepaidExpense" xlink:title="IncreaseDecreaseInPrepaidExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="IncreaseDecreaseInPrepaidExpense" xlink:title="presentation: IncreaseDecreaseInOperatingCapitalAbstract to IncreaseDecreaseInPrepaidExpense" order="2.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOtherCurrentAssets" xlink:label="IncreaseDecreaseInOtherCurrentAssets" xlink:title="IncreaseDecreaseInOtherCurrentAssets" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="IncreaseDecreaseInOtherCurrentAssets" xlink:title="presentation: IncreaseDecreaseInOperatingCapitalAbstract to IncreaseDecreaseInOtherCurrentAssets" order="3.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="IncreaseDecreaseInAccountsPayable" xlink:title="IncreaseDecreaseInAccountsPayable" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="IncreaseDecreaseInAccountsPayable" xlink:title="presentation: IncreaseDecreaseInOperatingCapitalAbstract to IncreaseDecreaseInAccountsPayable" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="IncreaseDecreaseInAccruedLiabilities" xlink:title="IncreaseDecreaseInAccruedLiabilities" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="IncreaseDecreaseInAccruedLiabilities" xlink:title="presentation: IncreaseDecreaseInOperatingCapitalAbstract to IncreaseDecreaseInAccruedLiabilities" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInDeferredIncomeTaxes" xlink:label="IncreaseDecreaseInDeferredIncomeTaxes" xlink:title="IncreaseDecreaseInDeferredIncomeTaxes" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="IncreaseDecreaseInDeferredIncomeTaxes" xlink:title="presentation: IncreaseDecreaseInOperatingCapitalAbstract to IncreaseDecreaseInDeferredIncomeTaxes" order="6.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOtherNoncurrentAssets" xlink:label="IncreaseDecreaseInOtherNoncurrentAssets" xlink:title="IncreaseDecreaseInOtherNoncurrentAssets" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="IncreaseDecreaseInOtherNoncurrentAssets" xlink:title="presentation: IncreaseDecreaseInOperatingCapitalAbstract to IncreaseDecreaseInOtherNoncurrentAssets" order="7.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOperatingLeaseLiability" xlink:label="IncreaseDecreaseInOperatingLeaseLiability" xlink:title="IncreaseDecreaseInOperatingLeaseLiability" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="IncreaseDecreaseInOperatingLeaseLiability" xlink:title="presentation: IncreaseDecreaseInOperatingCapitalAbstract to IncreaseDecreaseInOperatingLeaseLiability" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="IncreaseDecreaseInOperatingCapitalAbstract" xlink:title="presentation: AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract to IncreaseDecreaseInOperatingCapitalAbstract" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" xlink:label="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" xlink:title="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" xlink:title="presentation: AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract to AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:title="presentation: NetCashProvidedByUsedInOperatingActivitiesAbstract to AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="NetCashProvidedByUsedInOperatingActivities" xlink:title="NetCashProvidedByUsedInOperatingActivities" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="NetCashProvidedByUsedInOperatingActivities" xlink:title="presentation: NetCashProvidedByUsedInOperatingActivitiesAbstract to NetCashProvidedByUsedInOperatingActivities" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:title="presentation: StatementOfCashFlowsAbstract to NetCashProvidedByUsedInOperatingActivitiesAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:title="NetCashProvidedByUsedInInvestingActivitiesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="PaymentsToAcquirePropertyPlantAndEquipment" xlink:title="PaymentsToAcquirePropertyPlantAndEquipment" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="PaymentsToAcquirePropertyPlantAndEquipment" xlink:title="presentation: NetCashProvidedByUsedInInvestingActivitiesAbstract to PaymentsToAcquirePropertyPlantAndEquipment" order="0.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="NetCashProvidedByUsedInInvestingActivities" xlink:title="NetCashProvidedByUsedInInvestingActivities" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="NetCashProvidedByUsedInInvestingActivities" xlink:title="presentation: NetCashProvidedByUsedInInvestingActivitiesAbstract to NetCashProvidedByUsedInInvestingActivities" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:title="presentation: StatementOfCashFlowsAbstract to NetCashProvidedByUsedInInvestingActivitiesAbstract" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:title="NetCashProvidedByUsedInFinancingActivitiesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinanceLeasePrincipalPayments" xlink:label="FinanceLeasePrincipalPayments" xlink:title="FinanceLeasePrincipalPayments" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="FinanceLeasePrincipalPayments" xlink:title="presentation: NetCashProvidedByUsedInFinancingActivitiesAbstract to FinanceLeasePrincipalPayments" order="0.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="NetCashProvidedByUsedInFinancingActivities" xlink:title="NetCashProvidedByUsedInFinancingActivities" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="NetCashProvidedByUsedInFinancingActivities" xlink:title="presentation: NetCashProvidedByUsedInFinancingActivitiesAbstract to NetCashProvidedByUsedInFinancingActivities" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:title="presentation: StatementOfCashFlowsAbstract to NetCashProvidedByUsedInFinancingActivitiesAbstract" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="presentation: StatementOfCashFlowsAbstract to EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:title="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:title="presentation: StatementOfCashFlowsAbstract to CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="presentation: StatementOfCashFlowsAbstract to CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_2" xlink:title="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_2" xlink:title="presentation: StatementOfCashFlowsAbstract to CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/CondensedConsolidatedStatementsOfStockholdersEquity">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="StatementOfStockholdersEquityAbstract" xlink:title="StatementOfStockholdersEquityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable" xlink:label="StatementTable" xlink:title="StatementTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="StatementEquityComponentsAxis" xlink:title="StatementEquityComponentsAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockMember" xlink:label="CommonStockMember" xlink:title="CommonStockMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementEquityComponentsAxis" xlink:to="CommonStockMember" xlink:title="presentation: StatementEquityComponentsAxis to CommonStockMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="AdditionalPaidInCapitalMember" xlink:title="AdditionalPaidInCapitalMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementEquityComponentsAxis" xlink:to="AdditionalPaidInCapitalMember" xlink:title="presentation: StatementEquityComponentsAxis to AdditionalPaidInCapitalMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TreasuryStockCommonMember" xlink:label="TreasuryStockCommonMember" xlink:title="TreasuryStockCommonMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementEquityComponentsAxis" xlink:to="TreasuryStockCommonMember" xlink:title="presentation: StatementEquityComponentsAxis to TreasuryStockCommonMember" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsMember" xlink:label="RetainedEarningsMember" xlink:title="RetainedEarningsMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementEquityComponentsAxis" xlink:to="RetainedEarningsMember" xlink:title="presentation: StatementEquityComponentsAxis to RetainedEarningsMember" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="AccumulatedOtherComprehensiveIncomeMember" xlink:title="AccumulatedOtherComprehensiveIncomeMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementEquityComponentsAxis" xlink:to="AccumulatedOtherComprehensiveIncomeMember" xlink:title="presentation: StatementEquityComponentsAxis to AccumulatedOtherComprehensiveIncomeMember" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityComponentDomain" xlink:label="EquityComponentDomain" xlink:title="EquityComponentDomain" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementEquityComponentsAxis" xlink:to="EquityComponentDomain" xlink:title="presentation: StatementEquityComponentsAxis to EquityComponentDomain" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementTable" xlink:to="StatementEquityComponentsAxis" xlink:title="presentation: StatementTable to StatementEquityComponentsAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems" xlink:label="StatementLineItems" xlink:title="StatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:label="IncreaseDecreaseInStockholdersEquityRollForward" xlink:title="IncreaseDecreaseInStockholdersEquityRollForward" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity" xlink:label="StockholdersEquity" xlink:title="StockholdersEquity" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="StockholdersEquity" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to StockholdersEquity" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharesOutstanding" xlink:label="SharesOutstanding" xlink:title="SharesOutstanding" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="SharesOutstanding" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to SharesOutstanding" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:title="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardGross" xlink:label="StockIssuedDuringPeriodValueRestrictedStockAwardGross" xlink:title="StockIssuedDuringPeriodValueRestrictedStockAwardGross" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="StockIssuedDuringPeriodValueRestrictedStockAwardGross" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to StockIssuedDuringPeriodValueRestrictedStockAwardGross" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xlink:label="StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xlink:title="StockIssuedDuringPeriodSharesRestrictedStockAwardGross" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to StockIssuedDuringPeriodSharesRestrictedStockAwardGross" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchasedAndRetiredDuringPeriodValue" xlink:label="StockRepurchasedAndRetiredDuringPeriodValue" xlink:title="StockRepurchasedAndRetiredDuringPeriodValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="StockRepurchasedAndRetiredDuringPeriodValue" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to StockRepurchasedAndRetiredDuringPeriodValue" order="5.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchasedAndRetiredDuringPeriodShares" xlink:label="StockRepurchasedAndRetiredDuringPeriodShares" xlink:title="StockRepurchasedAndRetiredDuringPeriodShares" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="StockRepurchasedAndRetiredDuringPeriodShares" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to StockRepurchasedAndRetiredDuringPeriodShares" order="6.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="NetIncomeLoss" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to NetIncomeLoss" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity" xlink:label="StockholdersEquity_2" xlink:title="StockholdersEquity" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="StockholdersEquity_2" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to StockholdersEquity" order="9.0" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharesOutstanding" xlink:label="SharesOutstanding_2" xlink:title="SharesOutstanding" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="SharesOutstanding_2" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to SharesOutstanding" order="10.0" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementLineItems" xlink:to="IncreaseDecreaseInStockholdersEquityRollForward" xlink:title="presentation: StatementLineItems to IncreaseDecreaseInStockholdersEquityRollForward" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementTable" xlink:to="StatementLineItems" xlink:title="presentation: StatementTable to StatementLineItems" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfStockholdersEquityAbstract" xlink:to="StatementTable" xlink:title="presentation: StatementOfStockholdersEquityAbstract to StatementTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPolicies">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:label="BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:title="BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/NotesPayableAndLongtermDebt">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="DebtDisclosureAbstract" xlink:title="DebtDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="DebtDisclosureTextBlock" xlink:title="DebtDisclosureTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtDisclosureAbstract" xlink:to="DebtDisclosureTextBlock" xlink:title="presentation: DebtDisclosureAbstract to DebtDisclosureTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/IncomeTax">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="IncomeTaxDisclosureAbstract" xlink:title="IncomeTaxDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="IncomeTaxDisclosureTextBlock" xlink:title="IncomeTaxDisclosureTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="IncomeTaxDisclosureTextBlock" xlink:title="presentation: IncomeTaxDisclosureAbstract to IncomeTaxDisclosureTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/StockbasedCompensation">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:title="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:title="DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:title="presentation: DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract to DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/EarningsPerShare">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="EarningsPerShareAbstract" xlink:title="EarningsPerShareAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="EarningsPerShareTextBlock" xlink:title="EarningsPerShareTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="EarningsPerShareTextBlock" xlink:title="presentation: EarningsPerShareAbstract to EarningsPerShareTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/CommitmentsAndContingencies">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="CommitmentsAndContingenciesDisclosureAbstract" xlink:title="CommitmentsAndContingenciesDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="CommitmentsAndContingenciesDisclosureTextBlock" xlink:title="CommitmentsAndContingenciesDisclosureTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CommitmentsAndContingenciesDisclosureAbstract" xlink:to="CommitmentsAndContingenciesDisclosureTextBlock" xlink:title="presentation: CommitmentsAndContingenciesDisclosureAbstract to CommitmentsAndContingenciesDisclosureTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/ShareRepurchaseProgramAndShareRepurchases">
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_SHAREREPURCHASEPROGRAMANDSHAREREPURCHASESAbstract" xlink:label="SHAREREPURCHASEPROGRAMANDSHAREREPURCHASESAbstract" xlink:title="SHAREREPURCHASEPROGRAMANDSHAREREPURCHASESAbstract" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_ShareRepurchaseProgramAndShareRepurchasesTextBlock" xlink:label="ShareRepurchaseProgramAndShareRepurchasesTextBlock" xlink:title="ShareRepurchaseProgramAndShareRepurchasesTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SHAREREPURCHASEPROGRAMANDSHAREREPURCHASESAbstract" xlink:to="ShareRepurchaseProgramAndShareRepurchasesTextBlock" xlink:title="presentation: SHAREREPURCHASEPROGRAMANDSHAREREPURCHASESAbstract to ShareRepurchaseProgramAndShareRepurchasesTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPolicies">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="CashAndCashEquivalentsPolicyTextBlock" xlink:title="CashAndCashEquivalentsPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="CashAndCashEquivalentsPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to CashAndCashEquivalentsPolicyTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:label="ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:title="ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:label="RevenueFromContractWithCustomerPolicyTextBlock" xlink:title="RevenueFromContractWithCustomerPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="RevenueFromContractWithCustomerPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to RevenueFromContractWithCustomerPolicyTextBlock" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_RevenueRecognitionDiscountsPolicyTextBlock" xlink:label="RevenueRecognitionDiscountsPolicyTextBlock" xlink:title="RevenueRecognitionDiscountsPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="RevenueRecognitionDiscountsPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to RevenueRecognitionDiscountsPolicyTextBlock" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SellingGeneralAndAdministrativeExpensesPolicyTextBlock" xlink:label="SellingGeneralAndAdministrativeExpensesPolicyTextBlock" xlink:title="SellingGeneralAndAdministrativeExpensesPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="SellingGeneralAndAdministrativeExpensesPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to SellingGeneralAndAdministrativeExpensesPolicyTextBlock" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="PropertyPlantAndEquipmentPolicyTextBlock" xlink:title="PropertyPlantAndEquipmentPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="PropertyPlantAndEquipmentPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to PropertyPlantAndEquipmentPolicyTextBlock" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="InventoryPolicyTextBlock" xlink:title="InventoryPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="InventoryPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to InventoryPolicyTextBlock" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeLeasesPolicyTextBlock" xlink:label="LesseeLeasesPolicyTextBlock" xlink:title="LesseeLeasesPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="LesseeLeasesPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to LesseeLeasesPolicyTextBlock" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" xlink:label="ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" xlink:title="ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:label="FairValueOfFinancialInstrumentsPolicy" xlink:title="FairValueOfFinancialInstrumentsPolicy" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="FairValueOfFinancialInstrumentsPolicy" xlink:title="presentation: AccountingPoliciesAbstract to FairValueOfFinancialInstrumentsPolicy" order="9.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="IncomeTaxPolicyTextBlock" xlink:title="IncomeTaxPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="IncomeTaxPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to IncomeTaxPolicyTextBlock" order="10.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:title="ShareBasedCompensationOptionAndIncentivePlansPolicy" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:title="presentation: AccountingPoliciesAbstract to ShareBasedCompensationOptionAndIncentivePlansPolicy" order="11.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:label="ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:title="ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:title="presentation: AccountingPoliciesAbstract to ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" order="12.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntangibleAssetsFiniteLivedPolicy" xlink:label="IntangibleAssetsFiniteLivedPolicy" xlink:title="IntangibleAssetsFiniteLivedPolicy" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="IntangibleAssetsFiniteLivedPolicy" xlink:title="presentation: AccountingPoliciesAbstract to IntangibleAssetsFiniteLivedPolicy" order="13.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" xlink:label="ComprehensiveIncomePolicyPolicyTextBlock" xlink:title="ComprehensiveIncomePolicyPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ComprehensiveIncomePolicyPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to ComprehensiveIncomePolicyPolicyTextBlock" order="14.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesTables">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="DisaggregationOfRevenueTableTextBlock" xlink:title="DisaggregationOfRevenueTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="DisaggregationOfRevenueTableTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to DisaggregationOfRevenueTableTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="ScheduleOfInventoryCurrentTableTextBlock" xlink:title="ScheduleOfInventoryCurrentTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ScheduleOfInventoryCurrentTableTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to ScheduleOfInventoryCurrentTableTextBlock" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/StockbasedCompensationTables">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:title="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:label="ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:title="ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:title="presentation: DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract to ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock" xlink:label="ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock" xlink:title="ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock" xlink:title="presentation: DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract to ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/EarningsPerShareTables">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="EarningsPerShareAbstract" xlink:title="EarningsPerShareAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:title="ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:title="presentation: EarningsPerShareAbstract to ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesBasisOfPresentationDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="ScheduleOfSegmentReportingInformationBySegmentTable" xlink:title="ScheduleOfSegmentReportingInformationBySegmentTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementGeographicalAxis" xlink:label="StatementGeographicalAxis" xlink:title="StatementGeographicalAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain" xlink:label="SegmentGeographicalDomain" xlink:title="SegmentGeographicalDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_US" xlink:label="US" xlink:title="US" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentGeographicalDomain" xlink:to="US" xlink:title="presentation: SegmentGeographicalDomain to US" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_CA" xlink:label="CA" xlink:title="CA" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentGeographicalDomain" xlink:to="CA" xlink:title="presentation: SegmentGeographicalDomain to CA" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_ES" xlink:label="ES" xlink:title="ES" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentGeographicalDomain" xlink:to="ES" xlink:title="presentation: SegmentGeographicalDomain to ES" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementGeographicalAxis" xlink:to="SegmentGeographicalDomain" xlink:title="presentation: StatementGeographicalAxis to SegmentGeographicalDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="StatementGeographicalAxis" xlink:title="presentation: ScheduleOfSegmentReportingInformationBySegmentTable to StatementGeographicalAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="SegmentReportingInformationLineItems" xlink:title="SegmentReportingInformationLineItems" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_BusinessDescriptionAbstract" xlink:label="BusinessDescriptionAbstract" xlink:title="BusinessDescriptionAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NumberOfStores" xlink:label="NumberOfStores" xlink:title="NumberOfStores" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="BusinessDescriptionAbstract" xlink:to="NumberOfStores" xlink:title="presentation: BusinessDescriptionAbstract to NumberOfStores" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NumberOfOperatingSegments" xlink:label="NumberOfOperatingSegments" xlink:title="NumberOfOperatingSegments" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="BusinessDescriptionAbstract" xlink:to="NumberOfOperatingSegments" xlink:title="presentation: BusinessDescriptionAbstract to NumberOfOperatingSegments" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NumberOfReportableSegments" xlink:label="NumberOfReportableSegments" xlink:title="NumberOfReportableSegments" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="BusinessDescriptionAbstract" xlink:to="NumberOfReportableSegments" xlink:title="presentation: BusinessDescriptionAbstract to NumberOfReportableSegments" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingInformationLineItems" xlink:to="BusinessDescriptionAbstract" xlink:title="presentation: SegmentReportingInformationLineItems to BusinessDescriptionAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="SegmentReportingInformationLineItems" xlink:title="presentation: ScheduleOfSegmentReportingInformationBySegmentTable to SegmentReportingInformationLineItems" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ScheduleOfSegmentReportingInformationBySegmentTable" xlink:title="presentation: AccountingPoliciesAbstract to ScheduleOfSegmentReportingInformationBySegmentTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="DisaggregationOfRevenueTable" xlink:title="DisaggregationOfRevenueTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember" xlink:label="MinimumMember" xlink:title="MinimumMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeMember" xlink:to="MinimumMember" xlink:title="presentation: RangeMember to MinimumMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember" xlink:label="MaximumMember" xlink:title="MaximumMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeMember" xlink:to="MaximumMember" xlink:title="presentation: RangeMember to MaximumMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeAxis" xlink:to="RangeMember" xlink:title="presentation: RangeAxis to RangeMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisaggregationOfRevenueTable" xlink:to="RangeAxis" xlink:title="presentation: DisaggregationOfRevenueTable to RangeAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementGeographicalAxis" xlink:label="StatementGeographicalAxis" xlink:title="StatementGeographicalAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain" xlink:label="SegmentGeographicalDomain" xlink:title="SegmentGeographicalDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_US" xlink:label="US" xlink:title="US" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentGeographicalDomain" xlink:to="US" xlink:title="presentation: SegmentGeographicalDomain to US" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_CA" xlink:label="CA" xlink:title="CA" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentGeographicalDomain" xlink:to="CA" xlink:title="presentation: SegmentGeographicalDomain to CA" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_OtherCountriesMember" xlink:label="OtherCountriesMember" xlink:title="OtherCountriesMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentGeographicalDomain" xlink:to="OtherCountriesMember" xlink:title="presentation: SegmentGeographicalDomain to OtherCountriesMember" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_AllOtherCountriesMember" xlink:label="AllOtherCountriesMember" xlink:title="AllOtherCountriesMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentGeographicalDomain" xlink:to="AllOtherCountriesMember" xlink:title="presentation: SegmentGeographicalDomain to AllOtherCountriesMember" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementGeographicalAxis" xlink:to="SegmentGeographicalDomain" xlink:title="presentation: StatementGeographicalAxis to SegmentGeographicalDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisaggregationOfRevenueTable" xlink:to="StatementGeographicalAxis" xlink:title="presentation: DisaggregationOfRevenueTable to StatementGeographicalAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="ConcentrationRiskByTypeAxis" xlink:title="ConcentrationRiskByTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="ConcentrationRiskTypeDomain" xlink:title="ConcentrationRiskTypeDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GeographicConcentrationRiskMember" xlink:label="GeographicConcentrationRiskMember" xlink:title="GeographicConcentrationRiskMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConcentrationRiskTypeDomain" xlink:to="GeographicConcentrationRiskMember" xlink:title="presentation: ConcentrationRiskTypeDomain to GeographicConcentrationRiskMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConcentrationRiskByTypeAxis" xlink:to="ConcentrationRiskTypeDomain" xlink:title="presentation: ConcentrationRiskByTypeAxis to ConcentrationRiskTypeDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisaggregationOfRevenueTable" xlink:to="ConcentrationRiskByTypeAxis" xlink:title="presentation: DisaggregationOfRevenueTable to ConcentrationRiskByTypeAxis" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="ConcentrationRiskByBenchmarkAxis" xlink:title="ConcentrationRiskByBenchmarkAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="ConcentrationRiskBenchmarkDomain" xlink:title="ConcentrationRiskBenchmarkDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SalesRevenueNetMember" xlink:label="SalesRevenueNetMember" xlink:title="SalesRevenueNetMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConcentrationRiskBenchmarkDomain" xlink:to="SalesRevenueNetMember" xlink:title="presentation: ConcentrationRiskBenchmarkDomain to SalesRevenueNetMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConcentrationRiskByBenchmarkAxis" xlink:to="ConcentrationRiskBenchmarkDomain" xlink:title="presentation: ConcentrationRiskByBenchmarkAxis to ConcentrationRiskBenchmarkDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisaggregationOfRevenueTable" xlink:to="ConcentrationRiskByBenchmarkAxis" xlink:title="presentation: DisaggregationOfRevenueTable to ConcentrationRiskByBenchmarkAxis" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="BalanceSheetLocationAxis" xlink:title="BalanceSheetLocationAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="BalanceSheetLocationDomain" xlink:title="BalanceSheetLocationDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesMember" xlink:label="AccountsPayableAndAccruedLiabilitiesMember" xlink:title="AccountsPayableAndAccruedLiabilitiesMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="BalanceSheetLocationDomain" xlink:to="AccountsPayableAndAccruedLiabilitiesMember" xlink:title="presentation: BalanceSheetLocationDomain to AccountsPayableAndAccruedLiabilitiesMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="BalanceSheetLocationAxis" xlink:to="BalanceSheetLocationDomain" xlink:title="presentation: BalanceSheetLocationAxis to BalanceSheetLocationDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisaggregationOfRevenueTable" xlink:to="BalanceSheetLocationAxis" xlink:title="presentation: DisaggregationOfRevenueTable to BalanceSheetLocationAxis" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="DisaggregationOfRevenueLineItems" xlink:title="DisaggregationOfRevenueLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="RevenueFromContractWithCustomerAbstract" xlink:title="RevenueFromContractWithCustomerAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss" xlink:label="ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss" xlink:title="ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss" xlink:title="presentation: RevenueFromContractWithCustomerAbstract to ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_InventoryMerchandiseExpectedToBeReturned" xlink:label="InventoryMerchandiseExpectedToBeReturned" xlink:title="InventoryMerchandiseExpectedToBeReturned" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="InventoryMerchandiseExpectedToBeReturned" xlink:title="presentation: RevenueFromContractWithCustomerAbstract to InventoryMerchandiseExpectedToBeReturned" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_GiftCardRedemptionPeriod" xlink:label="GiftCardRedemptionPeriod" xlink:title="GiftCardRedemptionPeriod" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="GiftCardRedemptionPeriod" xlink:title="presentation: RevenueFromContractWithCustomerAbstract to GiftCardRedemptionPeriod" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="ContractWithCustomerLiability" xlink:title="ContractWithCustomerLiability" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="ContractWithCustomerLiability" xlink:title="presentation: RevenueFromContractWithCustomerAbstract to ContractWithCustomerLiability" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="ContractWithCustomerLiabilityRevenueRecognized" xlink:title="ContractWithCustomerLiabilityRevenueRecognized" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="ContractWithCustomerLiabilityRevenueRecognized" xlink:title="presentation: RevenueFromContractWithCustomerAbstract to ContractWithCustomerLiabilityRevenueRecognized" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredRevenueRevenueRecognized1" xlink:label="DeferredRevenueRevenueRecognized1" xlink:title="DeferredRevenueRevenueRecognized1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="DeferredRevenueRevenueRecognized1" xlink:title="presentation: RevenueFromContractWithCustomerAbstract to DeferredRevenueRevenueRecognized1" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisaggregationOfRevenueLineItems" xlink:to="RevenueFromContractWithCustomerAbstract" xlink:title="presentation: DisaggregationOfRevenueLineItems to RevenueFromContractWithCustomerAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueAbstract" xlink:label="DisaggregationOfRevenueAbstract" xlink:title="DisaggregationOfRevenueAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisaggregationOfRevenueAbstract" xlink:to="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="presentation: DisaggregationOfRevenueAbstract to RevenueFromContractWithCustomerExcludingAssessedTax" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="ConcentrationRiskPercentage1" xlink:title="ConcentrationRiskPercentage1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisaggregationOfRevenueAbstract" xlink:to="ConcentrationRiskPercentage1" xlink:title="presentation: DisaggregationOfRevenueAbstract to ConcentrationRiskPercentage1" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisaggregationOfRevenueLineItems" xlink:to="DisaggregationOfRevenueAbstract" xlink:title="presentation: DisaggregationOfRevenueLineItems to DisaggregationOfRevenueAbstract" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisaggregationOfRevenueTable" xlink:to="DisaggregationOfRevenueLineItems" xlink:title="presentation: DisaggregationOfRevenueTable to DisaggregationOfRevenueLineItems" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="DisaggregationOfRevenueTable" xlink:title="presentation: AccountingPoliciesAbstract to DisaggregationOfRevenueTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesDiscountsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_DiscountsAbstract" xlink:label="DiscountsAbstract" xlink:title="DiscountsAbstract" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_NumberOfClassesOfCustomerDiscounts" xlink:label="NumberOfClassesOfCustomerDiscounts" xlink:title="NumberOfClassesOfCustomerDiscounts" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DiscountsAbstract" xlink:to="NumberOfClassesOfCustomerDiscounts" xlink:title="presentation: DiscountsAbstract to NumberOfClassesOfCustomerDiscounts" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="DiscountsAbstract" xlink:title="presentation: AccountingPoliciesAbstract to DiscountsAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPropertyAndEquipmentNetOfAccumulatedDepreciationDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:label="ScheduleOfPropertyPlantAndEquipmentTable" xlink:title="ScheduleOfPropertyPlantAndEquipmentTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="PropertyPlantAndEquipmentByTypeAxis" xlink:title="PropertyPlantAndEquipmentByTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="PropertyPlantAndEquipmentTypeDomain" xlink:title="PropertyPlantAndEquipmentTypeDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="MachineryAndEquipmentMember" xlink:title="MachineryAndEquipmentMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="MachineryAndEquipmentMember" xlink:title="presentation: PropertyPlantAndEquipmentTypeDomain to MachineryAndEquipmentMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="FurnitureAndFixturesMember" xlink:title="FurnitureAndFixturesMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="FurnitureAndFixturesMember" xlink:title="presentation: PropertyPlantAndEquipmentTypeDomain to FurnitureAndFixturesMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VehiclesMember" xlink:label="VehiclesMember" xlink:title="VehiclesMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="VehiclesMember" xlink:title="presentation: PropertyPlantAndEquipmentTypeDomain to VehiclesMember" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BuildingAndBuildingImprovementsMember" xlink:label="BuildingAndBuildingImprovementsMember" xlink:title="BuildingAndBuildingImprovementsMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="BuildingAndBuildingImprovementsMember" xlink:title="presentation: PropertyPlantAndEquipmentTypeDomain to BuildingAndBuildingImprovementsMember" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentByTypeAxis" xlink:to="PropertyPlantAndEquipmentTypeDomain" xlink:title="presentation: PropertyPlantAndEquipmentByTypeAxis to PropertyPlantAndEquipmentTypeDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="PropertyPlantAndEquipmentByTypeAxis" xlink:title="presentation: ScheduleOfPropertyPlantAndEquipmentTable to PropertyPlantAndEquipmentByTypeAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember" xlink:label="MinimumMember" xlink:title="MinimumMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeMember" xlink:to="MinimumMember" xlink:title="presentation: RangeMember to MinimumMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember" xlink:label="MaximumMember" xlink:title="MaximumMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeMember" xlink:to="MaximumMember" xlink:title="presentation: RangeMember to MaximumMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeAxis" xlink:to="RangeMember" xlink:title="presentation: RangeAxis to RangeMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="RangeAxis" xlink:title="presentation: ScheduleOfPropertyPlantAndEquipmentTable to RangeAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentLineItems" xlink:label="PropertyPlantAndEquipmentLineItems" xlink:title="PropertyPlantAndEquipmentLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNetAbstract" xlink:label="PropertyPlantAndEquipmentNetAbstract" xlink:title="PropertyPlantAndEquipmentNetAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="PropertyPlantAndEquipmentUsefulLife" xlink:title="PropertyPlantAndEquipmentUsefulLife" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentNetAbstract" xlink:to="PropertyPlantAndEquipmentUsefulLife" xlink:title="presentation: PropertyPlantAndEquipmentNetAbstract to PropertyPlantAndEquipmentUsefulLife" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="PropertyPlantAndEquipmentNetAbstract" xlink:title="presentation: PropertyPlantAndEquipmentLineItems to PropertyPlantAndEquipmentNetAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="PropertyPlantAndEquipmentLineItems" xlink:title="presentation: ScheduleOfPropertyPlantAndEquipmentTable to PropertyPlantAndEquipmentLineItems" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ScheduleOfPropertyPlantAndEquipmentTable" xlink:title="presentation: AccountingPoliciesAbstract to ScheduleOfPropertyPlantAndEquipmentTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesInventoryDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNetAbstract" xlink:label="InventoryNetAbstract" xlink:title="InventoryNetAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryFinishedGoods" xlink:label="InventoryFinishedGoods" xlink:title="InventoryFinishedGoods" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="InventoryNetAbstract" xlink:to="InventoryFinishedGoods" xlink:title="presentation: InventoryNetAbstract to InventoryFinishedGoods" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryWorkInProcessAndRawMaterials" xlink:label="InventoryWorkInProcessAndRawMaterials" xlink:title="InventoryWorkInProcessAndRawMaterials" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="InventoryNetAbstract" xlink:to="InventoryWorkInProcessAndRawMaterials" xlink:title="presentation: InventoryNetAbstract to InventoryWorkInProcessAndRawMaterials" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherInventoryInTransit" xlink:label="OtherInventoryInTransit" xlink:title="OtherInventoryInTransit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="InventoryNetAbstract" xlink:to="OtherInventoryInTransit" xlink:title="presentation: InventoryNetAbstract to OtherInventoryInTransit" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNet" xlink:label="InventoryNet" xlink:title="InventoryNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="InventoryNetAbstract" xlink:to="InventoryNet" xlink:title="presentation: InventoryNetAbstract to InventoryNet" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="InventoryNetAbstract" xlink:title="presentation: AccountingPoliciesAbstract to InventoryNetAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesFairValueOfFinancialInstrumentsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_FairValueOfFinancialInstrumentsAbstract" xlink:label="FairValueOfFinancialInstrumentsAbstract" xlink:title="FairValueOfFinancialInstrumentsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet" xlink:label="FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet" xlink:title="FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FairValueOfFinancialInstrumentsAbstract" xlink:to="FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet" xlink:title="presentation: FairValueOfFinancialInstrumentsAbstract to FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="FairValueOfFinancialInstrumentsAbstract" xlink:title="presentation: AccountingPoliciesAbstract to FairValueOfFinancialInstrumentsAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesAccountsReceivableAndExpectedCreditLossesDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_AccountsReceivableAndExpectedCreditLossesAbstract" xlink:label="AccountsReceivableAndExpectedCreditLossesAbstract" xlink:title="AccountsReceivableAndExpectedCreditLossesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:label="AllowanceForDoubtfulAccountsReceivable" xlink:title="AllowanceForDoubtfulAccountsReceivable" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountsReceivableAndExpectedCreditLossesAbstract" xlink:to="AllowanceForDoubtfulAccountsReceivable" xlink:title="presentation: AccountsReceivableAndExpectedCreditLossesAbstract to AllowanceForDoubtfulAccountsReceivable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="AccountsReceivableAndExpectedCreditLossesAbstract" xlink:title="presentation: AccountingPoliciesAbstract to AccountsReceivableAndExpectedCreditLossesAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesOtherIntangibleAssetsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:title="ScheduleOfFiniteLivedIntangibleAssetsTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:title="FiniteLivedIntangibleAssetsByMajorClassAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:title="FiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntellectualPropertyMember" xlink:label="IntellectualPropertyMember" xlink:title="IntellectualPropertyMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="IntellectualPropertyMember" xlink:title="presentation: FiniteLivedIntangibleAssetsMajorClassNameDomain to IntellectualPropertyMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:title="presentation: FiniteLivedIntangibleAssetsByMajorClassAxis to FiniteLivedIntangibleAssetsMajorClassNameDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:title="presentation: ScheduleOfFiniteLivedIntangibleAssetsTable to FiniteLivedIntangibleAssetsByMajorClassAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember" xlink:label="MaximumMember" xlink:title="MaximumMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeMember" xlink:to="MaximumMember" xlink:title="presentation: RangeMember to MaximumMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeAxis" xlink:to="RangeMember" xlink:title="presentation: RangeAxis to RangeMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="RangeAxis" xlink:title="presentation: ScheduleOfFiniteLivedIntangibleAssetsTable to RangeAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="FiniteLivedIntangibleAssetsLineItems" xlink:title="FiniteLivedIntangibleAssetsLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsNetAbstract" xlink:label="FiniteLivedIntangibleAssetsNetAbstract" xlink:title="FiniteLivedIntangibleAssetsNetAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:label="AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:title="AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsNetAbstract" xlink:to="AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:title="presentation: FiniteLivedIntangibleAssetsNetAbstract to AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="AmortizationOfIntangibleAssets" xlink:title="AmortizationOfIntangibleAssets" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsNetAbstract" xlink:to="AmortizationOfIntangibleAssets" xlink:title="presentation: FiniteLivedIntangibleAssetsNetAbstract to AmortizationOfIntangibleAssets" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:title="FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsNetAbstract" xlink:to="FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:title="presentation: FiniteLivedIntangibleAssetsNetAbstract to FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:title="FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsNetAbstract" xlink:to="FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:title="presentation: FiniteLivedIntangibleAssetsNetAbstract to FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:title="FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsNetAbstract" xlink:to="FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:title="presentation: FiniteLivedIntangibleAssetsNetAbstract to FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:title="FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsNetAbstract" xlink:to="FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:title="presentation: FiniteLivedIntangibleAssetsNetAbstract to FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:title="FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsNetAbstract" xlink:to="FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:title="presentation: FiniteLivedIntangibleAssetsNetAbstract to FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="FiniteLivedIntangibleAssetsNetAbstract" xlink:title="presentation: FiniteLivedIntangibleAssetsLineItems to FiniteLivedIntangibleAssetsNetAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="FiniteLivedIntangibleAssetsLineItems" xlink:title="presentation: ScheduleOfFiniteLivedIntangibleAssetsTable to FiniteLivedIntangibleAssetsLineItems" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:title="presentation: AccountingPoliciesAbstract to ScheduleOfFiniteLivedIntangibleAssetsTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/NotesPayableAndLongtermDebtDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="DebtDisclosureAbstract" xlink:title="DebtDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentTable" xlink:label="DebtInstrumentTable" xlink:title="DebtInstrumentTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="LineOfCreditFacilityAxis" xlink:title="LineOfCreditFacilityAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="LineOfCreditFacilityLenderDomain" xlink:title="LineOfCreditFacilityLenderDomain" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_JPMorganChaseBankNAMember" xlink:label="JPMorganChaseBankNAMember" xlink:title="JPMorganChaseBankNAMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityLenderDomain" xlink:to="JPMorganChaseBankNAMember" xlink:title="presentation: LineOfCreditFacilityLenderDomain to JPMorganChaseBankNAMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAxis" xlink:to="LineOfCreditFacilityLenderDomain" xlink:title="presentation: LineOfCreditFacilityAxis to LineOfCreditFacilityLenderDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtInstrumentTable" xlink:to="LineOfCreditFacilityAxis" xlink:title="presentation: DebtInstrumentTable to LineOfCreditFacilityAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="DebtInstrumentLineItems" xlink:title="DebtInstrumentLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentsAbstract" xlink:label="DebtInstrumentsAbstract" xlink:title="DebtInstrumentsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="LineOfCreditFacilityMaximumBorrowingCapacity" xlink:title="LineOfCreditFacilityMaximumBorrowingCapacity" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtInstrumentsAbstract" xlink:to="LineOfCreditFacilityMaximumBorrowingCapacity" xlink:title="presentation: DebtInstrumentsAbstract to LineOfCreditFacilityMaximumBorrowingCapacity" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="ProceedsFromLinesOfCredit" xlink:title="ProceedsFromLinesOfCredit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtInstrumentsAbstract" xlink:to="ProceedsFromLinesOfCredit" xlink:title="presentation: DebtInstrumentsAbstract to ProceedsFromLinesOfCredit" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentsAbstract" xlink:title="presentation: DebtInstrumentLineItems to DebtInstrumentsAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtInstrumentTable" xlink:to="DebtInstrumentLineItems" xlink:title="presentation: DebtInstrumentTable to DebtInstrumentLineItems" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtDisclosureAbstract" xlink:to="DebtInstrumentTable" xlink:title="presentation: DebtDisclosureAbstract to DebtInstrumentTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/IncomeTaxDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="IncomeTaxDisclosureAbstract" xlink:title="IncomeTaxDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="EffectiveIncomeTaxRateContinuingOperations" xlink:title="EffectiveIncomeTaxRateContinuingOperations" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="EffectiveIncomeTaxRateContinuingOperations" xlink:title="presentation: IncomeTaxDisclosureAbstract to EffectiveIncomeTaxRateContinuingOperations" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:title="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameAxis" xlink:label="PlanNameAxis" xlink:title="PlanNameAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameDomain" xlink:label="PlanNameDomain" xlink:title="PlanNameDomain" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_TwoThousandAndThirteenRestrictedStockPlanMember" xlink:label="TwoThousandAndThirteenRestrictedStockPlanMember" xlink:title="TwoThousandAndThirteenRestrictedStockPlanMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PlanNameDomain" xlink:to="TwoThousandAndThirteenRestrictedStockPlanMember" xlink:title="presentation: PlanNameDomain to TwoThousandAndThirteenRestrictedStockPlanMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_TwoThousandAndTwentyThreeRestrictedStockPlanMember" xlink:label="TwoThousandAndTwentyThreeRestrictedStockPlanMember" xlink:title="TwoThousandAndTwentyThreeRestrictedStockPlanMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PlanNameDomain" xlink:to="TwoThousandAndTwentyThreeRestrictedStockPlanMember" xlink:title="presentation: PlanNameDomain to TwoThousandAndTwentyThreeRestrictedStockPlanMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PlanNameAxis" xlink:to="PlanNameDomain" xlink:title="presentation: PlanNameAxis to PlanNameDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="PlanNameAxis" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to PlanNameAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis" xlink:label="AwardTypeAxis" xlink:title="AwardTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="RestrictedStockUnitsRSUMember" xlink:title="RestrictedStockUnitsRSUMember" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_ServicedBasedRestrictedStockUnitsRSUsMember" xlink:label="ServicedBasedRestrictedStockUnitsRSUsMember" xlink:title="ServicedBasedRestrictedStockUnitsRSUsMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RestrictedStockUnitsRSUMember" xlink:to="ServicedBasedRestrictedStockUnitsRSUsMember" xlink:title="presentation: RestrictedStockUnitsRSUMember to ServicedBasedRestrictedStockUnitsRSUsMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="RestrictedStockUnitsRSUMember" xlink:title="presentation: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to RestrictedStockUnitsRSUMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="presentation: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="AwardTypeAxis" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to AwardTypeAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_TitleOfIndividualAxis" xlink:label="TitleOfIndividualAxis" xlink:title="TitleOfIndividualAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="TitleOfIndividualWithRelationshipToEntityDomain" xlink:title="TitleOfIndividualWithRelationshipToEntityDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_DirectorMember" xlink:label="DirectorMember" xlink:title="DirectorMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="DirectorMember" xlink:title="presentation: TitleOfIndividualWithRelationshipToEntityDomain to DirectorMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ChiefExecutiveOfficerMember" xlink:label="ChiefExecutiveOfficerMember" xlink:title="ChiefExecutiveOfficerMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="ChiefExecutiveOfficerMember" xlink:title="presentation: TitleOfIndividualWithRelationshipToEntityDomain to ChiefExecutiveOfficerMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="TitleOfIndividualAxis" xlink:to="TitleOfIndividualWithRelationshipToEntityDomain" xlink:title="presentation: TitleOfIndividualAxis to TitleOfIndividualWithRelationshipToEntityDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="TitleOfIndividualAxis" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to TitleOfIndividualAxis" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember" xlink:label="MinimumMember" xlink:title="MinimumMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeMember" xlink:to="MinimumMember" xlink:title="presentation: RangeMember to MinimumMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember" xlink:label="MaximumMember" xlink:title="MaximumMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeMember" xlink:to="MaximumMember" xlink:title="presentation: RangeMember to MaximumMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeAxis" xlink:to="RangeMember" xlink:title="presentation: RangeAxis to RangeMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="RangeAxis" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to RangeAxis" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:label="CommonStockCapitalSharesReservedForFutureIssuance" xlink:title="CommonStockCapitalSharesReservedForFutureIssuance" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" xlink:to="CommonStockCapitalSharesReservedForFutureIssuance" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract to CommonStockCapitalSharesReservedForFutureIssuance" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract to ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="presentation: DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract to ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/StockbasedCompensationSummaryOfActivityForNonvestedRestrictedStockUnitAwardsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:title="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis" xlink:label="AwardTypeAxis" xlink:title="AwardTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_RestrictedStockAndRestrictedStockUnitsMember" xlink:label="RestrictedStockAndRestrictedStockUnitsMember" xlink:title="RestrictedStockAndRestrictedStockUnitsMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="RestrictedStockAndRestrictedStockUnitsMember" xlink:title="presentation: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to RestrictedStockAndRestrictedStockUnitsMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="presentation: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="AwardTypeAxis" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to AwardTypeAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" order="2.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" order="3.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_2" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_2" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_2" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_2" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="presentation: DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract to ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:title="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis" xlink:label="AwardTypeAxis" xlink:title="AwardTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_ServicedBasedRestrictedStockUnitsRSUsMember" xlink:label="ServicedBasedRestrictedStockUnitsRSUsMember" xlink:title="ServicedBasedRestrictedStockUnitsRSUsMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="ServicedBasedRestrictedStockUnitsRSUsMember" xlink:title="presentation: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to ServicedBasedRestrictedStockUnitsRSUsMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_PerformanceBasedRestrictedStockUnitsRSUsMember" xlink:label="PerformanceBasedRestrictedStockUnitsRSUsMember" xlink:title="PerformanceBasedRestrictedStockUnitsRSUsMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="PerformanceBasedRestrictedStockUnitsRSUsMember" xlink:title="presentation: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to PerformanceBasedRestrictedStockUnitsRSUsMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_RestrictedStockAndRestrictedStockUnitsMember" xlink:label="RestrictedStockAndRestrictedStockUnitsMember" xlink:title="RestrictedStockAndRestrictedStockUnitsMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="RestrictedStockAndRestrictedStockUnitsMember" xlink:title="presentation: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to RestrictedStockAndRestrictedStockUnitsMember" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="presentation: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="AwardTypeAxis" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to AwardTypeAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationAbstract" xlink:label="ShareBasedCompensationAbstract" xlink:title="ShareBasedCompensationAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="AllocatedShareBasedCompensationExpense" xlink:title="AllocatedShareBasedCompensationExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationAbstract" xlink:to="AllocatedShareBasedCompensationExpense" xlink:title="presentation: ShareBasedCompensationAbstract to AllocatedShareBasedCompensationExpense" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" xlink:label="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" xlink:title="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationAbstract" xlink:to="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" xlink:title="presentation: ShareBasedCompensationAbstract to EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" xlink:label="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" xlink:title="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationAbstract" xlink:to="EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" xlink:title="presentation: ShareBasedCompensationAbstract to EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" xlink:label="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" xlink:title="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationAbstract" xlink:to="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" xlink:title="presentation: ShareBasedCompensationAbstract to EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" xlink:label="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" xlink:title="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationAbstract" xlink:to="EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" xlink:title="presentation: ShareBasedCompensationAbstract to EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:title="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationAbstract" xlink:to="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:title="presentation: ShareBasedCompensationAbstract to EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xlink:label="StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xlink:title="StockIssuedDuringPeriodSharesRestrictedStockAwardGross" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationAbstract" xlink:to="StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xlink:title="presentation: ShareBasedCompensationAbstract to StockIssuedDuringPeriodSharesRestrictedStockAwardGross" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationAbstract" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="presentation: DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract to ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/EarningsPerShareDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="EarningsPerShareAbstract" xlink:title="EarningsPerShareAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract" xlink:label="NetIncomeLossAvailableToCommonStockholdersBasicAbstract" xlink:title="NetIncomeLossAvailableToCommonStockholdersBasicAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEarningsPerShareDilutedByCommonClassTable" xlink:label="ScheduleOfEarningsPerShareDilutedByCommonClassTable" xlink:title="ScheduleOfEarningsPerShareDilutedByCommonClassTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis" xlink:label="AwardTypeAxis" xlink:title="AwardTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockMember" xlink:label="RestrictedStockMember" xlink:title="RestrictedStockMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="RestrictedStockMember" xlink:title="presentation: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to RestrictedStockMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="presentation: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfEarningsPerShareDilutedByCommonClassTable" xlink:to="AwardTypeAxis" xlink:title="presentation: ScheduleOfEarningsPerShareDilutedByCommonClassTable to AwardTypeAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_TitleOfIndividualAxis" xlink:label="TitleOfIndividualAxis" xlink:title="TitleOfIndividualAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="TitleOfIndividualWithRelationshipToEntityDomain" xlink:title="TitleOfIndividualWithRelationshipToEntityDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_DirectorMember" xlink:label="DirectorMember" xlink:title="DirectorMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="DirectorMember" xlink:title="presentation: TitleOfIndividualWithRelationshipToEntityDomain to DirectorMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedPaymentArrangementEmployeeMember" xlink:label="ShareBasedPaymentArrangementEmployeeMember" xlink:title="ShareBasedPaymentArrangementEmployeeMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="ShareBasedPaymentArrangementEmployeeMember" xlink:title="presentation: TitleOfIndividualWithRelationshipToEntityDomain to ShareBasedPaymentArrangementEmployeeMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="TitleOfIndividualAxis" xlink:to="TitleOfIndividualWithRelationshipToEntityDomain" xlink:title="presentation: TitleOfIndividualAxis to TitleOfIndividualWithRelationshipToEntityDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfEarningsPerShareDilutedByCommonClassTable" xlink:to="TitleOfIndividualAxis" xlink:title="presentation: ScheduleOfEarningsPerShareDilutedByCommonClassTable to TitleOfIndividualAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareDilutedLineItems" xlink:label="EarningsPerShareDilutedLineItems" xlink:title="EarningsPerShareDilutedLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLossAbstract" xlink:label="NetIncomeLossAbstract" xlink:title="NetIncomeLossAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetIncomeLossAbstract" xlink:to="NetIncomeLoss" xlink:title="presentation: NetIncomeLossAbstract to NetIncomeLoss" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareDilutedLineItems" xlink:to="NetIncomeLossAbstract" xlink:title="presentation: EarningsPerShareDilutedLineItems to NetIncomeLossAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="WeightedAverageNumberOfSharesOutstandingAbstract" xlink:title="WeightedAverageNumberOfSharesOutstandingAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="WeightedAverageNumberOfSharesOutstandingBasic" xlink:title="WeightedAverageNumberOfSharesOutstandingBasic" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="WeightedAverageNumberOfSharesOutstandingBasic" xlink:title="presentation: WeightedAverageNumberOfSharesOutstandingAbstract to WeightedAverageNumberOfSharesOutstandingBasic" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:title="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:title="presentation: WeightedAverageNumberOfSharesOutstandingAbstract to IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:title="WeightedAverageNumberOfDilutedSharesOutstanding" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:title="presentation: WeightedAverageNumberOfSharesOutstandingAbstract to WeightedAverageNumberOfDilutedSharesOutstanding" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareBasic" xlink:label="EarningsPerShareBasic" xlink:title="EarningsPerShareBasic" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="EarningsPerShareBasic" xlink:title="presentation: WeightedAverageNumberOfSharesOutstandingAbstract to EarningsPerShareBasic" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="EarningsPerShareDiluted" xlink:title="EarningsPerShareDiluted" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="EarningsPerShareDiluted" xlink:title="presentation: WeightedAverageNumberOfSharesOutstandingAbstract to EarningsPerShareDiluted" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareDilutedLineItems" xlink:to="WeightedAverageNumberOfSharesOutstandingAbstract" xlink:title="presentation: EarningsPerShareDilutedLineItems to WeightedAverageNumberOfSharesOutstandingAbstract" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfEarningsPerShareDilutedByCommonClassTable" xlink:to="EarningsPerShareDilutedLineItems" xlink:title="presentation: ScheduleOfEarningsPerShareDilutedByCommonClassTable to EarningsPerShareDilutedLineItems" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetIncomeLossAvailableToCommonStockholdersBasicAbstract" xlink:to="ScheduleOfEarningsPerShareDilutedByCommonClassTable" xlink:title="presentation: NetIncomeLossAvailableToCommonStockholdersBasicAbstract to ScheduleOfEarningsPerShareDilutedByCommonClassTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="NetIncomeLossAvailableToCommonStockholdersBasicAbstract" xlink:title="presentation: EarningsPerShareAbstract to NetIncomeLossAvailableToCommonStockholdersBasicAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tandyleather.com/role/ShareRepurchaseProgramAndShareRepurchasesDetails">
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_SHAREREPURCHASEPROGRAMANDSHAREREPURCHASESAbstract" xlink:label="SHAREREPURCHASEPROGRAMANDSHAREREPURCHASESAbstract" xlink:title="SHAREREPURCHASEPROGRAMANDSHAREREPURCHASESAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfTreasuryStockTable" xlink:label="ClassOfTreasuryStockTable" xlink:title="ClassOfTreasuryStockTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember" xlink:label="MaximumMember" xlink:title="MaximumMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeMember" xlink:to="MaximumMember" xlink:title="presentation: RangeMember to MaximumMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeAxis" xlink:to="RangeMember" xlink:title="presentation: RangeAxis to RangeMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ClassOfTreasuryStockTable" xlink:to="RangeAxis" xlink:title="presentation: ClassOfTreasuryStockTable to RangeAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityClassOfTreasuryStockLineItems" xlink:label="EquityClassOfTreasuryStockLineItems" xlink:title="EquityClassOfTreasuryStockLineItems" />
    <link:loc xlink:type="locator" xlink:href="tlfa-20240331.xsd#tlfa_StockRepurchaseProgramAbstract" xlink:label="StockRepurchaseProgramAbstract" xlink:title="StockRepurchaseProgramAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchaseProgramAuthorizedAmount1" xlink:label="StockRepurchaseProgramAuthorizedAmount1" xlink:title="StockRepurchaseProgramAuthorizedAmount1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockRepurchaseProgramAbstract" xlink:to="StockRepurchaseProgramAuthorizedAmount1" xlink:title="presentation: StockRepurchaseProgramAbstract to StockRepurchaseProgramAuthorizedAmount1" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:label="StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:title="StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockRepurchaseProgramAbstract" xlink:to="StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:title="presentation: StockRepurchaseProgramAbstract to StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EquityClassOfTreasuryStockLineItems" xlink:to="StockRepurchaseProgramAbstract" xlink:title="presentation: EquityClassOfTreasuryStockLineItems to StockRepurchaseProgramAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ClassOfTreasuryStockTable" xlink:to="EquityClassOfTreasuryStockLineItems" xlink:title="presentation: ClassOfTreasuryStockTable to EquityClassOfTreasuryStockLineItems" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SHAREREPURCHASEPROGRAMANDSHAREREPURCHASESAbstract" xlink:to="ClassOfTreasuryStockTable" xlink:title="presentation: SHAREREPURCHASEPROGRAMANDSHAREREPURCHASESAbstract to ClassOfTreasuryStockTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>9
<FILENAME>image00001.jpg
<TEXT>
begin 644 image00001.jpg
M_]C_X  02D9)1@ ! 0$ 8 !@  #_VP!#  8$!08%! 8&!08'!P8("A *"@D)
M"A0.#PP0%Q08&!<4%A8:'24?&ALC'!86("P@(R8G*2HI&1\M,"TH,"4H*2C_
MVP!# 0<'!PH("A,*"A,H&A8:*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H
M*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"C_P  1" !O CP# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
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
MM71USGQ(_P"2=^*?^P5=?^B6KHZ "BBB@ HHHH **** "BBB@ HHHH ****
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
MM145I=07D"SVD\4\+?=DB<,I^A'%,OKVUL(A+?7,%M$6VAYI @)],GOP?RH
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
MD^W[R.OK.OE_]DJT#^*=<O,<PV2PYYXWN#_[3KZ@I/<$%%%%(84444 %%%%
M'.?$C_DG?BG_ +!5U_Z):NCKG/B1_P D[\4_]@JZ_P#1+5T= !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %4;K5K*U
MU:QTV>;9>WRR/;Q[&.\1@%^0,#&X=2.O%7JX?Q1_R5;P-_U[ZE_Z!#0!W%<=
MJ'Q+\*V&H75C<ZA.+FUD,,RQV-Q($<=1N6,C\C78UY+X2OO$UMK'C--!T:PO
M[4Z].6DN+XP,'\N+(V[&R,8YSW]J /2=!UFQU_3EOM+E>6V9BH9X7B.0<'Y7
M /Z5!KGB;1]"OM-L]6OH[:YU*7R;5&5CYC9 QP#CEAR<#FK6B3:A/IL<FLVD
M-G>DG?##-YJKSQAL#/&.U>):W?\ AGQIK/C"XUG7]-LI(8_[+TCS[A4:%HSO
M:<#/>7&",':N,T >VZWJMGHFES:AJ4CQVD.W>R1/(1E@H^506/)'05R2_%KP
M8TKQKJ=R9$ +(-.NLKGID>76I\-/$J^+/!>FZH2IN&3R[D*>%E7A_P "1D>Q
M%9'AK_DL7C3_ *\[#_T&2@#K+S6]/LY=,BN;C8^I2>5:CRV/F-M+8X'' )YQ
M3]:U>QT6T2YU.?R('E2!6V,V7=@JC !/)(KA_BU)>0ZUX(DTRWBN;Q=48Q0R
MR^6KGR7X+8./RK$^)=_XJN-%L(]:T/3K.S.J69::#4#,P/G+@;?+'\Z /2/$
M_BC2/"\-O+K=T]NEQ(8HMD$DI=@,XPBD] :S]$^('AS6]4AT_3;RYDNYMVQ7
ML;B,'"EC\S(%' /4UC_%&6^AU_P3)I5M%=7JZA+Y<,LOE*W^CR9RV#CC)Z5O
M:#?^*;B_V:WHFGV5IM)\V"_,S;NPV[%X]\T -\1^.O#WAS4TT[5[V6*\>$7
MBCM)ICY98J&RB$=5(_"K?AKQ7HGB83_V)?QW+P8\V,JT<D>>FY& 8?E7%>(-
M;?0_C-+,FD:KJGF:!$ICTZ%9&3_2)3DAF7BCP3J)\:^/!XKT[3)].TNULI-/
M>2Y*+-<2^8IV,BDE0FT]3GYJ8'J%?(W[4-X+GXFB$-G[+911$9Z$EG_DXKZY
MKX>^--Z-0^*?B293D+=&#/\ US41_P#LM"$SV+]D>PV:/XAU ]9IXH![;%+'
M_P!&"O?Z\K_9IT\67PLM)MI5KVXFN#GO\VP'\D%>J4/<:"BBBD 4444 %%%%
M '.?$C_DG?BG_L%77_HEJZ.N<^)'_)._%/\ V"KK_P!$M71T %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5S'B[PI)
MKVJ:3J-IJ]WI5YIRS+%+;HCY$H4-D."/X!^==/10!SWAW0]4TR]>;4/$M_JT
M31E!!<0PHJMD'=E%!SP1Z<UC_P#""W]OJ6J7.D^*]3TZ/4+IKR6"*"%U$C
MD%D)Z*._:NYHH P].T:_MM#O+&[UZ\O;F?>$O98XUDA#* -H50.#DC(ZFJV@
M>"/#^BZ+9Z=#I=E,MM&(_-FMT9Y#W9CCJ3D_C72T4 8'ASPQ:>']3U>YTUVB
MMM1D29K-558HI NUF0 <;L#(]JET_P /PV7BG5M<2:1IM1BAB>,@;4$8(!'?
MG<:VJ* ,77M AUC4M%O)9I(WTNY-S&J@8<E"N#[8-'BS0(?$FFQ6=Q-)"D=S
M%<AD ))C<,!SV)%;5% '.>,/#+>(7TR:#4[G3;K3YFGAG@1&8$H4/# CHQ[5
M#H_AS6;+4H;B[\7:G?P(26MIK>!5DX(Y*H#[\'M74T4 8ZZ%$OB^3Q )I//>
MQ6P,6!MVK(S[O7.6(JO9^&(+#Q5=:UI]Q+;"]3%Y:*!Y4[CI+CL_8D=1U]:Z
M"B@ K\_?%5P;OQ/K%PW#37DTA_%R:_0*O&->^ FDZEXS&LV]^]O8RW'VBZL#
M%O#G=E@K9&T'TP<9..P#3$ST;X>:8VC^!=!L)%"RPV42R =-Y4%OU)KH:**0
MPHHHH **** "BBB@#G/B1_R3OQ3_ -@JZ_\ 1+5T=8OC:RN-3\&:_864?FW5
MUI]Q!"FX+N=HV"C)X&21UK:H **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
+ **** "BBB@#_]D!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>11
<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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538842399568">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Document and Entity Information - shares<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2024</div></th>
<th class="th"><div>May 10, 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_dei_CoverAbstract', window );"><strong>Cover [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentType', window );">Document Type</a></td>
<td class="text">10-Q<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_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_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Mar. 31,  2024<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_DocumentFiscalYearFocus', window );">Document Fiscal Year Focus</a></td>
<td class="text">2024<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentFiscalPeriodFocus', window );">Document Fiscal Period Focus</a></td>
<td class="text">Q1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_EntityFileNumber', window );">Entity File Number</a></td>
<td class="text">1-12368<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityRegistrantName', window );">Entity Registrant Name</a></td>
<td class="text">TANDY LEATHER FACTORY, INC<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCentralIndexKey', window );">Entity Central Index Key</a></td>
<td class="text">0000909724<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityIncorporationStateCountryCode', window );">Entity Incorporation, State or Country Code</a></td>
<td class="text">DE<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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">75-2543540<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressAddressLine1', window );">Entity Address, Address Line One</a></td>
<td class="text">1900 Southeast Loop 820<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressCityOrTown', window );">Entity Address, City or Town</a></td>
<td class="text">Fort Worth<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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">76140<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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">817<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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">872-3200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_Security12bTitle', window );">Title of 12(b) Security</a></td>
<td class="text">Common Stock, par value $0.0024<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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">TLF<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_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_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="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_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_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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityShellCompany', window );">Entity Shell Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCommonStockSharesOutstanding', window );">Entity Common Stock, Shares Outstanding</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,401,972<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_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>12
<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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538848826592">
<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>Mar. 31, 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_us-gaap_AssetsCurrentAbstract', window );"><strong>CURRENT ASSETS:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">$ 12,315<span></span>
</td>
<td class="nump">$ 12,159<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsReceivableNetCurrent', window );">Accounts receivable-trade, net of allowance of $31 at March 31, 2024 and December 31, 2023, respectively</a></td>
<td class="nump">420<span></span>
</td>
<td class="nump">264<span></span>
</td>
</tr>
<tr class="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 );">Inventory</a></td>
<td class="nump">36,675<span></span>
</td>
<td class="nump">37,993<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxesReceivable', window );">Income tax receivable</a></td>
<td class="nump">248<span></span>
</td>
<td class="nump">248<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PrepaidExpenseCurrent', window );">Prepaid expenses</a></td>
<td class="nump">403<span></span>
</td>
<td class="nump">475<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAssetsCurrent', window );">Other current assets</a></td>
<td class="nump">99<span></span>
</td>
<td class="nump">113<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsCurrent', window );">Total current assets</a></td>
<td class="nump">50,160<span></span>
</td>
<td class="nump">51,252<span></span>
</td>
</tr>
<tr class="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, at cost</a></td>
<td class="nump">29,875<span></span>
</td>
<td class="nump">28,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_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Less accumulated depreciation</a></td>
<td class="num">(18,426)<span></span>
</td>
<td class="num">(18,131)<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_PropertyPlantAndEquipmentNet', window );">Property and equipment, net</a></td>
<td class="nump">11,449<span></span>
</td>
<td class="nump">10,547<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating lease assets</a></td>
<td class="nump">9,503<span></span>
</td>
<td class="nump">8,995<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinanceLeaseRightOfUseAsset', window );">Financing lease assets</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">23<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxAssetsNet', window );">Deferred income taxes</a></td>
<td class="nump">880<span></span>
</td>
<td class="nump">880<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAssetsNoncurrent', window );">Other assets</a></td>
<td class="nump">440<span></span>
</td>
<td class="nump">438<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Assets', window );">TOTAL ASSETS</a></td>
<td class="nump">72,432<span></span>
</td>
<td class="nump">72,135<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrentAbstract', window );"><strong>CURRENT LIABILITIES:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsPayableTradeCurrent', window );">Accounts payable-trade</a></td>
<td class="nump">2,215<span></span>
</td>
<td class="nump">2,333<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesAndOtherLiabilities', window );">Accrued expenses and other liabilities</a></td>
<td class="nump">1,986<span></span>
</td>
<td class="nump">3,140<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TaxesPayableCurrent', window );">Income taxes payable</a></td>
<td class="nump">449<span></span>
</td>
<td class="nump">288<span></span>
</td>
</tr>
<tr class="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 );">Current portion of operating lease liabilities</a></td>
<td class="nump">3,194<span></span>
</td>
<td class="nump">3,172<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">7,844<span></span>
</td>
<td class="nump">8,933<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxLiabilitiesNet', window );">Deferred income taxes</a></td>
<td class="nump">9<span></span>
</td>
<td class="nump">9<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent', window );">Uncertain tax positions</a></td>
<td class="nump">388<span></span>
</td>
<td class="nump">388<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherLiabilitiesNoncurrent', window );">Other non-current liabilities</a></td>
<td class="nump">210<span></span>
</td>
<td class="nump">205<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Operating lease liabilities, non-current</a></td>
<td class="nump">6,743<span></span>
</td>
<td class="nump">6,253<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiabilityNoncurrent', window );">Finance lease liabilities, non-current</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">1<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingencies', window );">COMMITMENTS AND CONTINGENCIES (Note 6)</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="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_CommonStockValue', window );">Common stock, $0.0024 par value; 25,000,000 shares authorized; 9,826,348 and 9,823,621 shares issued at March 31, 2024 and December 31, 2023, respectively; 8,401,972 and 8,399,245 shares outstanding at March 31, 2024 and December 31, 2023, respectively</a></td>
<td class="nump">23<span></span>
</td>
<td class="nump">23<span></span>
</td>
</tr>
<tr class="re">
<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 );">Paid-in capital</a></td>
<td class="nump">4,178<span></span>
</td>
<td class="nump">3,981<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Retained earnings</a></td>
<td class="nump">64,184<span></span>
</td>
<td class="nump">63,659<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TreasuryStockCommonValue', window );">Treasury stock at cost (1,424,376 shares at March 31, 2024 and December 31, 2023 respectively)</a></td>
<td class="num">(9,773)<span></span>
</td>
<td class="num">(9,773)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax', window );">Accumulated other comprehensive loss, net of tax</a></td>
<td class="num">(1,374)<span></span>
</td>
<td class="num">(1,544)<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">57,238<span></span>
</td>
<td class="nump">56,346<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">$ 72,432<span></span>
</td>
<td class="nump">$ 72,135<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_AccountsPayableTradeCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19(a))<br> -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> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483467/210-10-45-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_AccountsPayableTradeCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsReceivableNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -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 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481990/310-10-45-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_AccountsReceivableNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesAndOtherLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expenses incurred but not yet paid nor invoiced, and liabilities classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedLiabilitiesAndOtherLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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/2147479440/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_AccumulatedOtherComprehensiveIncomeLossNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source.</p></div>
<a href="javascript: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 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14A<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-14A<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 45<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-11<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)(ii)<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 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<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)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-210-S99-1<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-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_AccumulatedOtherComprehensiveIncomeLossNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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/2147479617/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>Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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 2: 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 3: 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 4: 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 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 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 7: 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/2147480167/946-830-55-12<br><br>Reference 8: 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/2147479440/944-210-S99-1<br><br>Reference 9: 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 10: 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/2147479617/946-210-S99-1<br><br>Reference 11: 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 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/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 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)(iii)(A))<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)(iv))<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)(5))<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 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 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)(A))<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)(B))<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)(iv))<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)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<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 (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481404/852-10-50-7<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 30<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<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 32<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 26: 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/2147479853/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>Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -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 2: 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 3: 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 4: 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 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 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 7: 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 8: 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 9: 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 10: 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 11: 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 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)(iii)(A))<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 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 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)(5))<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 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 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)(iii)(A))<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)(4)(iii)(B))<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)(iv))<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)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481404/852-10-50-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483467/210-10-45-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingencies">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-210-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(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03.17)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/942-210-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.25)<br> -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_CommitmentsAndContingencies</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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/2147479440/944-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(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_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_DeferredIncomeTaxAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482525/740-10-45-4<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482525/740-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_DeferredIncomeTaxAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxLiabilitiesNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(15)(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-210-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482525/740-10-45-4<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 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482525/740-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_DeferredIncomeTaxLiabilitiesNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 finance 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_FinanceLeaseLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 amortization, of right-of-use asset from finance 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_FinanceLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_IncomeTaxesReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying amount due within one year of the balance sheet date (or one operating cycle, if longer) from tax authorities as of the balance sheet date representing refunds of overpayments or recoveries based on agreed-upon resolutions of disputes.</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(3)(a)(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> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03.10)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/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_IncomeTaxesReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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/2147479440/944-210-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(g)(1)(ii))<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 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 5: 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 6: 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/2147479853/942-210-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(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 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 2: 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 3: 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 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)(ii))<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 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 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 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/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 9: 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 10: 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 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)(iii)(A))<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)(4)(iv))<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 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 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)(i))<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)(A))<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)(iii)(B))<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)(4)(iv))<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)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 19: 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 20: 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 21: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.21)<br> -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_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_LiabilityForUncertainTaxPositionsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount recognized for uncertainty in income taxes classified as noncurrent.</p></div>
<a href="javascript: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 210<br> -SubTopic 10<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilityForUncertainTaxPositionsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</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_OtherAssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_OtherLiabilitiesNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherLiabilitiesNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PrepaidExpenseCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset related to consideration paid in advance for costs that provide economic benefits within a future period of one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483467/210-10-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 340<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 05<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482955/340-10-05-5<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 340<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483032/340-10-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidExpenseCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<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/2147479440/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/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 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/2147479440/944-210-S99-1<br><br>Reference 4: 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/2147480842/942-360-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RetainedEarningsAccumulatedDeficit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated undistributed earnings (deficit).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 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 (h)(2)<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 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 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)(23)(a)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/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(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480008/505-10-S99-1<br><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(30)(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_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/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 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/2147480167/946-830-55-12<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 1<br> -Subparagraph (SX 210.6-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-2<br><br>Reference 5: 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/2147483575/946-220-S99-3<br><br>Reference 6: 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/2147483575/946-220-S99-3<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-3<br><br>Reference 8: 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 9: 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 10: 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 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(29))<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(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 13: 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 14: 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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TaxesPayableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred and payable for statutory income, sales, use, payroll, excise, real, property and other taxes. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19,20)<br> -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_TaxesPayableCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TreasuryStockCommonValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount allocated to 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 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481520/505-30-50-4<br><br>Reference 2: 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><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.30)<br> -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_TreasuryStockCommonValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>13
<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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538842311248">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Condensed Consolidated Balance Sheets (Parenthetical) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Mar. 31, 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_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_AllowanceForDoubtfulAccountsReceivableCurrent', window );">Allowance</a></td>
<td class="nump">$ 31<span></span>
</td>
<td class="nump">$ 31<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityAbstract', window );"><strong>STOCKHOLDERS' EQUITY:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockParOrStatedValuePerShare', window );">Common stock, par value (in dollars per share)</a></td>
<td class="nump">$ 0.0024<span></span>
</td>
<td class="nump">$ 0.0024<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesAuthorized', window );">Common stock, shares authorized (in shares)</a></td>
<td class="nump">25,000,000<span></span>
</td>
<td class="nump">25,000,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Common stock, shares issued (in shares)</a></td>
<td class="nump">9,826,348<span></span>
</td>
<td class="nump">9,823,621<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesOutstanding', window );">Common stock, shares outstanding (in shares)</a></td>
<td class="nump">8,401,972<span></span>
</td>
<td class="nump">8,399,245<span></span>
</td>
</tr>
<tr class="ro">
<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, shares (in shares)</a></td>
<td class="nump">1,424,376<span></span>
</td>
<td class="nump">1,424,376<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of allowance for credit loss on accounts receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -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_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_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://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/2147479617/946-210-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(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_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://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/2147479617/946-210-S99-2<br><br>Reference 3: 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/2147483575/946-220-S99-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 5: 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/2147483575/946-220-S99-3<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(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_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_StockholdersEquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>14
<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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538945830352">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Condensed Consolidated Statements of Operations and Comprehensive Income - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2024</div></th>
<th class="th"><div>Mar. 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_us-gaap_IncomeStatementAbstract', window );"><strong>Condensed Consolidated Statements of Operations and Comprehensive Income [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 19,275<span></span>
</td>
<td class="nump">$ 20,360<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Cost of sales</a></td>
<td class="nump">8,355<span></span>
</td>
<td class="nump">8,541<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross profit</a></td>
<td class="nump">10,920<span></span>
</td>
<td class="nump">11,819<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingCostsAndExpenses', window );">Operating expenses</a></td>
<td class="nump">10,271<span></span>
</td>
<td class="nump">10,838<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">649<span></span>
</td>
<td class="nump">981<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingIncomeLossAbstract', window );"><strong>Other (income) expense:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Interest income</a></td>
<td class="num">(84)<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_OtherNonoperatingIncomeExpense', window );">Other, net</a></td>
<td class="nump">26<span></span>
</td>
<td class="nump">39<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NonoperatingIncomeExpense', window );">Total other (income) expense</a></td>
<td class="num">(58)<span></span>
</td>
<td class="nump">39<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Income before income taxes</a></td>
<td class="nump">707<span></span>
</td>
<td class="nump">942<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax provision</a></td>
<td class="nump">182<span></span>
</td>
<td class="nump">278<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">525<span></span>
</td>
<td class="nump">664<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation adjustments, net of tax</a></td>
<td class="nump">170<span></span>
</td>
<td class="num">(39)<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_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest', window );">Comprehensive income</a></td>
<td class="nump">$ 695<span></span>
</td>
<td class="nump">$ 625<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Net income per common share:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic (in dollars per share)</a></td>
<td class="nump">$ 0.06<span></span>
</td>
<td class="nump">$ 0.08<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted (in dollars per share)</a></td>
<td class="nump">$ 0.06<span></span>
</td>
<td class="nump">$ 0.08<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract', window );"><strong>Weighted average number of shares outstanding:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic (in shares)</a></td>
<td class="nump">8,400,354<span></span>
</td>
<td class="nump">8,303,117<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted (in shares)</a></td>
<td class="nump">8,500,354<span></span>
</td>
<td class="nump">8,350,166<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income. Excludes changes in equity resulting from investments by owners and distributions to owners.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481231/810-10-45-19<br><br>Reference 2: http://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(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<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(24))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483589/942-220-S99-1<br><br>Reference 4: 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(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-1A<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-1B<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 55<br> -Paragraph 4K<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481175/810-10-55-4K<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CostOfGoodsAndServicesSold">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/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 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.2(a),(d))<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_CostOfGoodsAndServicesSold</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -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 2: 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 3: 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 4: 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 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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 14: 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/2147483589/942-220-S99-1<br><br>Reference 15: 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/2147483586/944-220-S99-1<br><br>Reference 16: 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 17: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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 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 2: 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 3: 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 4: 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 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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/2147483589/942-220-S99-1<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(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<br><br>Reference 15: 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 16: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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 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 2: 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 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 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/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 6: 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 7: 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 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)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 9: 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 10: 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 11: 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 12: 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 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)(iv))<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)(5))<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 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 16: 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 17: 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 18: 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<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.1,2)<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_GrossProfit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -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/2147483586/944-220-S99-1<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 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 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 4: 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 5: 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 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 (c)<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 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/2147479557/942-235-S99-1<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 1<br> -SubTopic 20<br> -Topic 940<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481913/940-20-25-1<br><br>Reference 9: 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 10: 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/2147483589/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_IncomeStatementAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -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 2: 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 3: 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 4: 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 5: 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 6: 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/2147483586/944-220-S99-1<br><br>Reference 7: 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 8: 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_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>The net amount of operating interest income (expense).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 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/2147483589/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_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/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 2: 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 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 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 5: 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 6: 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 7: 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 8: 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 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 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 11: 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 12: 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 13: 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/2147480167/946-830-55-10<br><br>Reference 14: 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/2147483581/946-220-45-7<br><br>Reference 15: 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/2147483586/944-220-S99-1<br><br>Reference 16: 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 17: 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/2147483575/946-220-S99-1<br><br>Reference 18: 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/2147483575/946-220-S99-3<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)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 20: 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 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)(iii)(A))<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)(iv))<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)(5))<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 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 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)(A))<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)(B))<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)(iv))<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)(5))<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 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 30: 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 31: 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 32: 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 33: 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 34: 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 35: 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 36: 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 37: 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 38: 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 39: 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/2147483589/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_NonoperatingIncomeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.7)<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_NonoperatingIncomeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingCostsAndExpenses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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. Excludes Selling, General and Administrative Expense.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingCostsAndExpenses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The net result for the period of deducting operating expenses from operating revenues.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/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 2: 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 (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<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 (f)<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/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 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_OperatingIncomeLossAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingIncomeLossAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 220<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-10A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherNonoperatingIncomeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of income (expense) related to nonoperating activities, classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.9)<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_OtherNonoperatingIncomeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -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 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-5<br><br>Reference 3: http://www.xbrl.org/2003/role/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 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 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 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 (b)<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 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 8: 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 9: 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 (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 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 11: 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_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 16<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-16<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>15
<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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538945829760">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Condensed Consolidated Statements of Cash Flows - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2024</div></th>
<th class="th"><div>Mar. 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_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">$ 525<span></span>
</td>
<td class="nump">$ 664<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Adjustments to reconcile net income to net cash provided by operating activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSoldDepreciation', window );">Depreciation and amortization</a></td>
<td class="nump">321<span></span>
</td>
<td class="nump">285<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense', window );">Operating lease asset amortization</a></td>
<td class="nump">919<span></span>
</td>
<td class="nump">834<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GainLossOnDispositionOfAssets1', window );">Loss on disposal of assets</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">27<span></span>
</td>
</tr>
<tr class="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">197<span></span>
</td>
<td class="nump">228<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract', window );"><strong>Changes in operating assets and liabilities</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsReceivable', window );">Accounts receivable-trade</a></td>
<td class="num">(158)<span></span>
</td>
<td class="num">(104)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInInventories', window );">Inventory</a></td>
<td class="nump">1,184<span></span>
</td>
<td class="nump">2,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_IncreaseDecreaseInPrepaidExpense', window );">Prepaid expenses</a></td>
<td class="nump">72<span></span>
</td>
<td class="num">(130)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOtherCurrentAssets', window );">Other current assets</a></td>
<td class="nump">14<span></span>
</td>
<td class="num">(13)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsPayable', window );">Accounts payable-trade</a></td>
<td class="num">(115)<span></span>
</td>
<td class="num">(2,053)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccruedLiabilities', window );">Accrued expenses and other liabilities</a></td>
<td class="num">(1,142)<span></span>
</td>
<td class="num">(694)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes', window );">Income taxes, net</a></td>
<td class="nump">163<span></span>
</td>
<td class="nump">278<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOtherNoncurrentAssets', window );">Other assets</a></td>
<td class="num">(2)<span></span>
</td>
<td class="num">(30)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOperatingLeaseLiability', window );">Operating lease liabilities</a></td>
<td class="num">(892)<span></span>
</td>
<td class="num">(851)<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_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities', window );">Total adjustments</a></td>
<td class="nump">561<span></span>
</td>
<td class="nump">133<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 operating activities</a></td>
<td class="nump">1,086<span></span>
</td>
<td class="nump">797<span></span>
</td>
</tr>
<tr class="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_PaymentsToAcquirePropertyPlantAndEquipment', window );">Purchase of property and equipment</a></td>
<td class="num">(1,227)<span></span>
</td>
<td class="num">(87)<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">(1,227)<span></span>
</td>
<td class="num">(87)<span></span>
</td>
</tr>
<tr class="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_FinanceLeasePrincipalPayments', window );">Payment of finance lease obligations</a></td>
<td class="num">(1)<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivities', window );">Net cash used in financing activities</a></td>
<td class="num">(1)<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_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Effect of exchange rate changes on cash and cash equivalents</a></td>
<td class="nump">298<span></span>
</td>
<td class="num">(39)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect', window );">Net increase in cash and cash equivalents</a></td>
<td class="nump">156<span></span>
</td>
<td class="nump">671<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Cash and cash equivalents, beginning of period</a></td>
<td class="nump">12,159<span></span>
</td>
<td class="nump">7,975<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Cash and cash equivalents, end of period</a></td>
<td class="nump">$ 12,315<span></span>
</td>
<td class="nump">$ 8,646<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_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The sum of adjustments which are added to or deducted from net income or loss, including the portion attributable to noncontrolling interest, to reflect cash provided by or used in operating activities, in accordance with the indirect cash flow 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> -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_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482913/230-10-50-8<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-24<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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/2147481877/830-230-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CostOfGoodsAndServicesSoldDepreciation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for allocation of cost of tangible asset over its useful life directly used in production of good and rendering of service.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 360<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/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_CostOfGoodsAndServicesSoldDepreciation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) from effect of exchange rate changes on cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; held in foreign currencies. Excludes amounts for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 230<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481877/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_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeasePrincipalPayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 principal payment on finance 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 4<br> -Subparagraph (g)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-4<br><br>Reference 2: 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 (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479041/842-20-45-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_FinanceLeasePrincipalPayments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_GainLossOnDispositionOfAssets1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of gain (loss) on sale or disposal of assets, including but not limited to property plant and equipment, intangible assets and equity in securities of subsidiaries or equity method investee.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GainLossOnDispositionOfAssets1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccountsPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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_IncreaseDecreaseInAccountsPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccountsReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccountsReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccruedLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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_IncreaseDecreaseInAccruedLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 account that represents the temporary difference that results from Income or Loss that is recognized for accounting purposes but not for tax purposes and vice versa.</p></div>
<a href="javascript: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_IncreaseDecreaseInDeferredIncomeTaxes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_IncreaseDecreaseInOtherCurrentAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in current assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInOtherCurrentAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_IncreaseDecreaseInOtherNoncurrentAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 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/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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInOtherNoncurrentAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInPrepaidExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the amount of outstanding money paid in advance for goods or services that bring economic benefits for future periods.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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_IncreaseDecreaseInPrepaidExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -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 activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -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 activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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/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 2: 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 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 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 5: 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 6: 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 7: 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 8: 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 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 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 11: 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 12: 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 13: 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/2147480167/946-830-55-10<br><br>Reference 14: 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/2147483581/946-220-45-7<br><br>Reference 15: 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/2147483586/944-220-S99-1<br><br>Reference 16: 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 17: 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/2147483575/946-220-S99-1<br><br>Reference 18: 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/2147483575/946-220-S99-3<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)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 20: 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 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)(iii)(A))<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)(iv))<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)(5))<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 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 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)(A))<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)(B))<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)(iv))<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)(5))<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 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 30: 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 31: 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 32: 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 33: 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 34: 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 35: 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 36: 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 37: 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 38: 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 39: 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/2147483589/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of periodic reduction over lease term of carrying amount of right-of-use asset from operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquirePropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>16
<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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538842743776">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Condensed Consolidated Statements of Stockholders' Equity - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Common Stock [Member]</div></th>
<th class="th"><div>Paid-in Capital [Member]</div></th>
<th class="th"><div>Treasury Stock [Member]</div></th>
<th class="th"><div>Retained Earnings [Member]</div></th>
<th class="th"><div>Accumulated Other Comprehensive Income (Loss) [Member]</div></th>
<th class="th"><div>Total</div></th>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at Dec. 31, 2022</a></td>
<td class="nump">$ 23<span></span>
</td>
<td class="nump">$ 3,222<span></span>
</td>
<td class="num">$ (9,773)<span></span>
</td>
<td class="nump">$ 59,891<span></span>
</td>
<td class="num">$ (1,900)<span></span>
</td>
<td class="nump">$ 51,463<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_SharesOutstanding', window );">Balance (in shares) at Dec. 31, 2022</a></td>
<td class="nump">8,293,149<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation expense</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">228<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">228<span></span>
</td>
</tr>
<tr class="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 );">Vesting of restricted stock units</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross', window );">Vesting of restricted stock units (in shares)</a></td>
<td class="nump">17,518<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net 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">664<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">664<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation adjustments, net of tax</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(39)<span></span>
</td>
<td class="num">(39)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at Mar. 31, 2023</a></td>
<td class="nump">$ 23<span></span>
</td>
<td class="nump">3,450<span></span>
</td>
<td class="num">(9,773)<span></span>
</td>
<td class="nump">60,555<span></span>
</td>
<td class="num">(1,939)<span></span>
</td>
<td class="nump">52,316<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_SharesOutstanding', window );">Balance (in shares) at Mar. 31, 2023</a></td>
<td class="nump">8,310,667<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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 at Dec. 31, 2023</a></td>
<td class="nump">$ 23<span></span>
</td>
<td class="nump">3,981<span></span>
</td>
<td class="num">(9,773)<span></span>
</td>
<td class="nump">63,659<span></span>
</td>
<td class="num">(1,544)<span></span>
</td>
<td class="nump">56,346<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_SharesOutstanding', window );">Balance (in shares) at Dec. 31, 2023</a></td>
<td class="nump">8,399,245<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation expense</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">197<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">197<span></span>
</td>
</tr>
<tr class="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 );">Vesting of restricted stock units</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross', window );">Vesting of restricted stock units (in shares)</a></td>
<td class="nump">2,727<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_StockRepurchasedAndRetiredDuringPeriodValue', window );">Repurchase of common stock</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedAndRetiredDuringPeriodShares', window );">Repurchase of common stock (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net 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">525<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">525<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation adjustments, net of tax</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">170<span></span>
</td>
<td class="nump">170<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at Mar. 31, 2024</a></td>
<td class="nump">$ 23<span></span>
</td>
<td class="nump">$ 4,178<span></span>
</td>
<td class="num">$ (9,773)<span></span>
</td>
<td class="nump">$ 64,184<span></span>
</td>
<td class="num">$ (1,374)<span></span>
</td>
<td class="nump">$ 57,238<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_SharesOutstanding', window );">Balance (in shares) at Mar. 31, 2024</a></td>
<td class="nump">8,401,972<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_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><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481089/718-20-55-13<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481089/718-20-55-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_IncreaseDecreaseInStockholdersEquityRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInStockholdersEquityRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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 2: 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 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 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 5: 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 6: 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 7: 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 8: 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 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 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 11: 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 12: 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 13: 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/2147480167/946-830-55-10<br><br>Reference 14: 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/2147483581/946-220-45-7<br><br>Reference 15: 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/2147483586/944-220-S99-1<br><br>Reference 16: 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 17: 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/2147483575/946-220-S99-1<br><br>Reference 18: 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/2147483575/946-220-S99-3<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)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 20: 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 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)(iii)(A))<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)(iv))<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)(5))<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 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 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)(A))<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)(B))<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)(iv))<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)(5))<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 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 30: 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 31: 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 32: 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 33: 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 34: 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 35: 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 36: 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 37: 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 38: 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 39: 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/2147483589/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_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 220<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-10A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 which are neither cancelled nor held in the treasury.</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_SharesOutstanding</td>
</tr>
<tr>
<td style="padding-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_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 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480008/505-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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_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_StockRepurchasedAndRetiredDuringPeriodShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares that have been repurchased and retired 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 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480008/505-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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_StockRepurchasedAndRetiredDuringPeriodShares</td>
</tr>
<tr>
<td style="padding-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_StockRepurchasedAndRetiredDuringPeriodValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Equity impact of the value of stock that has been repurchased and retired during the period. The excess of the purchase price over par value can be charged against retained earnings (once the excess is fully allocated to additional paid in capital).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480008/505-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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_StockRepurchasedAndRetiredDuringPeriodValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/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 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/2147480167/946-830-55-12<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 1<br> -Subparagraph (SX 210.6-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-2<br><br>Reference 5: 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/2147483575/946-220-S99-3<br><br>Reference 6: 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/2147483575/946-220-S99-3<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-3<br><br>Reference 8: 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 9: 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 10: 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 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(29))<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(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 13: 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 14: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480418/310-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>17
<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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538937232144">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 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_AccountingPoliciesAbstract', window );"><strong>BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock', window );">BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES</a></td>
<td class="text">
<div style="text-align: justify; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">1.&#160; BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">Tandy Leather Factory, Inc. (&#8220;TLF,&#8221; &#8220;we,&#8221; &#8220;our,&#8221; &#8220;us,&#8221; &#8220;the&#8221; Company,&#8221; &#8220;Tandy,&#8221; or &#8220;Tandy Leather&#8221; mean Tandy Leather Factory, Inc., together with its subsidiaries)<span style="font-style: italic;"> </span>is one of the world&#8217;s largest specialty retailers of leather and leathercraft-related items.&#160; Founded in 1919 in Fort Worth, Texas, the Company introduced leathercrafting to millions of American and later
          Canadian and other international customers and has built a track record as the trusted source of quality leather, tools, hardware, supplies, kits and teaching materials for leatherworkers everywhere.&#160; Today, our mission remains to build on our
          legacy of inspiring the timeless art and trade of leatherworking.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">What differentiates Tandy from the competition is our high brand awareness and strong brand equity and loyalty, our network of retail stores that provides
          convenience, a high-touch customer service experience, and a hub for the local leathercrafting community, and our 100-year heritage. We believe that this combination of qualities is unique to Tandy and gives the brand competitive advantages that
          are difficult for others to replicate.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">We sell our products primarily through company-owned stores and through orders generated from our global websites, <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">and through direct account representatives in our commercial division</span>. We also manufacture leather lace, cut
          leather pieces and most of the do-it-yourself kits that are sold in our stores and on our websites.&#160; We also offer production services to our business customers such as cutting (&#8220;clicking&#8221;), splitting, and some assembly. We maintain our principal
          offices at 1900 Southeast Loop 820, Fort Worth, Texas 76140.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">The Company currently operates a total of 102 retail
          stores. There are 91 stores in the United States (&#8220;U.S.&#8221;), ten stores in Canada and one store in Spain.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">The Company&#8217;s common shares currently trade on the Nasdaq Capital Market under the symbol &#8220;TLF.&#8221;</div>

<div><br/>
          </div>

<div style="text-align: justify; font-family: 'Times New Roman'; background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">We operate as a <span style="-sec-ix-hidden:Fact_53019d5e2b204ab49d2b6ecf90dbadfa"><span style="-sec-ix-hidden:Fact_07119480a0aa41a9af1c991f8ee8cf42">single</span></span> segment and report on a consolidated basis.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">T<span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">he accompanying unaudited Condensed Consolidated Financial Statements have been prepared in accordance with accounting principles generally accepted in the United States of America (&#8220;GAAP&#8221;) for interim financial information and with the
            instructions to Form 10-Q and Article 8 of Regulation S-X. Accordingly, they do not include all of the information and footnotes required by GAAP for annual audited financial statements. In the opinion of management, the accompanying unaudited
            Condensed Consolidated Financial Statements for Tandy Leather Factory, Inc. and its consolidated subsidiaries contain all adjustments (consisting of normal recurring adjustments) necessary to present fairly our financial position as of March
            31, 2024 and December 31, 2023, our results of operations and our cash flows for the three months ended March 31, 2024 and 2023, and our statements of stockholders&#8217; equity as of and for the three months ended March 31, 2024 and 2023. The
            preparation of financial statements in accordance with GAAP requires the use of estimates that affect the reported value of assets, liabilities, revenues and expenses. These estimates are based on historical experience and various other factors
            that are believed to be reasonable under the circumstances, the results of which form the basis for the Company&#8217;s conclusions. The Company continually evaluates the information used to make these estimates as the business and the economic
            environment changes. Actual results may differ from these estimates, and estimates are subject to change due to modifications in the underlying conditions or assumptions. These unaudited Condensed Consolidated Financial Statements should be
            read in conjunction with the audited Consolidated Financial Statements and accompanying notes included in our Form 10-K for the year ended December 31, 2023</span>.</div>

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

<div style="text-align: justify; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">Significant Accounting Policies</div>

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

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Cash and cash equivalents</span></span>. The Company considers investments with a maturity when purchased of three months or less
          to be cash equivalents. All credit card, debit card and electronic transfer transactions that process in less than seven days are classified as cash and cash equivalents.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Foreign currency translation and transactions</span></span>. Foreign currency translation adjustments arise from activities of our
          foreign subsidiaries.&#160; Results of operations are translated into U.S. dollars using the average exchange rates during the period, while assets and liabilities are translated using period-end exchange rates.&#160; Foreign currency translation
          adjustments of assets and liabilities are recorded in stockholders&#8217; equity and presented net of tax. Gains and losses resulting from foreign currency translations are <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">reported in the Condensed Consolidated Statements of Operations and Comprehensive Income (Loss) under the caption &#8220;Foreign currency
            translation adjustments, net of tax&#8221; for all periods presented</span>.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Revenue Recognition.</span></span>&#160; Our revenue is earned from sales of merchandise and generally occurs via three methods: (1) at
          the store counter, (2) via web sales, and (3) sales of product directly to commercial customers. We recognize revenue when we satisfy the performance obligation of transferring control of product merchandise over to a customer. At the store
          counter, our performance obligation is met, and revenue is recognized when a sales transaction occurs with a customer. When merchandise is shipped to a customer, our performance obligation is met, and revenue is recognized when control passes to
          the customer. Shipping terms are normally free on board (&#8220;FOB&#8221;) shipping point and control passes when the merchandise is shipped to the customer. Sales tax and comparable foreign tax are excluded from net sales, while shipping charged to our
          customers is included in net sales. Net sales are based on the amount of consideration that we expect to receive, reduced by estimates for future merchandise returns.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">The <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">sales return allowance is based each year on historical customer return behavior and other known factors and reduces net sales and cost of sales, accordingly. The sales return allowance included in accrued expense and other
            liabilities was $0.1 million, $0.1
            million, and $0.2 million as of March 31, 2024, December 31, 2023, and January 1, 2023. The estimated value of merchandise expected
            to be returned included in other current assets was $0.1 million as of March 31, 2024, December 31, 2023, and January 1, 2023</span>.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">We <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">record a gift card liability for the unfulfilled performance obligation on the date we issue a gift card to a customer. We record revenue and reduce the gift card liability as the customer redeems the gift card. In addition, for gift
            card breakage, we recognize a proportionate amount for the expected unredeemed gift cards over the expected customer redemption period, which is one year. As of March 31, 2024, December 31, 2023 and January1, 2023, our gift card liability, included in accrued expenses and other liabilities, was $0.2 million, $0.3 million and $0.3 million, respectively. We recognized gift card revenue of $0.2 million for the three months ended March 31, 2024 and 2023</span>.</div>

<div><br/>
          </div>

<div style="text-align: justify; font-family: 'Times New Roman'; background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">For the three
            months ended March 31, 2024 and 2023, we recognized $0.1 million and $0.2 million respectively in net sales associated with gift cards.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Disaggregated Revenue.</span>&#160; </span><span style="font-family: 'Times New Roman'; font-size: 10pt; color: #000000;">In the following table, revenue for the three months ended March 31,
          2024 and 2023 is disaggregated by geographic areas as follows:</span></div>

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

<table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; width: 100%;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"> </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
                <div style="text-align: center; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Three Months Ended March 31,</div>
              </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
                <div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman',Times,serif; font-size: 10pt; font-style: italic;">(in thousands)</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
                <div style="text-align: center; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">2024</div>
              </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
                <div style="text-align: center; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">2023</div>
              </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
                <div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">United States</div>
              </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">17,085</div>
              </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">18,099</div>
              </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; white-space: nowrap;" valign="bottom">
                <div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Canada</div>
              </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,897</div>
              </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,907</div>
              </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">Other </td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">293</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">354</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">
                <div style="text-align: left; text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman',Times,serif; font-size: 10pt; font-weight: bold;">Net sales</div>
              </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">$</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">19,275</div>
              </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">$</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">20,360</div>
              </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: justify;">Geographic sales information is based on the location of the customer. As a percentage of our consolidated net sales, excluding
            Canada, our other international net sales were less than 2.0% for the three months ended March 31, 2024, and 2023 respectively.</div>

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

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="text-decoration: underline;"><span style="font-style: italic; font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-variant: normal; text-transform: none;">Discounts</span></span><span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-variant: normal; text-transform: none;"><span style="text-decoration: underline;">.</span> <span style="font-style: normal;">We offer six&#160; classes of customer discounts:&#160; 1) Retail, 2) Military/First Responder, 3) Business, 4) Commercial, 5) Commercial Pro, and 6) Employees.
              There are no other classes of discounts and any discounts given will fall into one of these six categories. Such discounts are not
              deemed to be variable consideration nor convey a material right to these customers since the discounted pricing they receive in a discount class is not incremental to others within the same class and there is no retrospective impact of such
              discounts. As a result, sales are reported after deduction of discounts at the point of sale. We do not pay slotting fees or make other payments to resellers.</span></span></div>

<div><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Operating</span></span><span style="text-decoration: underline;">&#160;</span><span style="font-style: italic;"><span style="text-decoration: underline;">expense</span></span><span style="text-decoration: underline;">s</span>. Operating expenses include all
          selling, general and administrative costs, including wages and benefits, rent and occupancy costs, depreciation, advertising, store operating expenses, outbound freight charges (to ship merchandise to customers), and corporate office costs.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Property and equipment, net of accumulated depreciation</span></span>. Property and equipment are stated at cost. Depreciation is
          computed using the straight-line method over the estimated useful lives of the assets, which are <span style="-sec-ix-hidden:Fact_138de38eb2164d4da489f5d1fc8ccb33">three</span> to ten years for equipment and machinery, <span style="-sec-ix-hidden:Fact_081f9d3879424da5a84f1d889d24a907">seven</span>
          to fifteen years for furniture and fixtures, five years for vehicles, and forty years for buildings and related improvements. Leasehold
          improvements are amortized over the lesser of the life of the lease or the useful life of the asset. Repairs and maintenance costs are expensed as incurred but are capitalized if extend the life of the assets.</div>

<div><br/>
          </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Inventory</span></span>. Inventory is stated at the lower of first-in, first-out (&#8220;FIFO&#8221;) cost or net realizable value, and FIFO
          layers are maintained at the location level. Finished goods held for sale include the cost of merchandise purchases, the costs to bring the merchandise to our Texas distribution center, warehousing and handling expenditures, and distributing and
          delivering merchandise to our stores. These costs include depreciation of long-lived assets utilized in acquiring, warehousing and distributing inventory. Manufacturing inventory including raw materials and work-in-process is valued on a first
          in, first out basis using full absorption accounting which includes material, labor, and other applicable manufacturing overhead. Carrying values of inventory are analyzed and, to the extent that the cost of inventory exceeds the net realizable
          value, provisions are made to reduce the carrying amount of the inventory.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">We regularly review all inventory items to determine if there are (i) damaged goods (e.g., for leather, excessive scars or damage from ultra-violet (&#8220;UV&#8221;) light),
          (ii) items that need to be removed from our product line (e.g., slow-moving items, inability of a supplier to provide items of acceptable quality or quantity, and to maintain freshness in the product line) and (iii) pricing actions that need to
          be taken to adequately value our inventory at the lower of cost or net realizable value.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">Since the determination of net realizable value of inventory involves both estimation and judgement with regard to market values and reasonable costs to sell,
          differences in these estimates could result in ultimate valuations that differ from the recorded asset.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">The majority of inventory purchases and commitments are made in U.S. dollars in order to limit the Company&#8217;s exposure to foreign currency fluctuations. Goods shipped
          to us are recorded as inventory owned by us when the risk of loss shifts to us from the supplier.<span style="color: rgb(0, 0, 0);"><br/>
          </span></div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Inventory is physically counted partially during each quarter and fully counted at year-end in the Texas distribution center. At the store
          level, inventory is partially&#160; counted each quarter for high value items and fully counted at year-end. Inventory is then adjusted in our accounting system to reflect actual count results. </div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
                <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-style: italic;">(in thousands)</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom">
                <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">March 31, 2024</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom">
                <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">December 31, 2023</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom;" valign="bottom">
                <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">On hand:</div>
              </td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);" valign="bottom">
                <div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);">Finished goods held for sale</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom">
                <div style="color: rgb(0, 0, 0);">$</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom">
                <div style="color: rgb(0, 0, 0);">33,625</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom">
                <div style="color: rgb(0, 0, 0);">$</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom">
                <div style="color: rgb(0, 0, 0);">33,350</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
                <div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);">Raw materials and work in process</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
                <div style="color: rgb(0, 0, 0);">1,248</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
                <div style="color: rgb(0, 0, 0);">1,774</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom">
                <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Inventory in transit</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">
                <div style="color: rgb(0, 0, 0);">1,802</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">
                <div style="color: rgb(0, 0, 0);">2,869</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom">
                <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;">TOTAL</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom">
                <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom">
                <div style="color: rgb(0, 0, 0); font-weight: bold;">36,675</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom">
                <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom">
                <div style="color: rgb(0, 0, 0); font-weight: bold;">37,993</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="text-decoration: underline;"><span style="font-style: italic;">Leases</span></span><span style="font-style: italic;">.</span> We lease certain real estate for our retail store locations and may
          lease warehouse equipment for our Texas distribution center under long-term lease agreements; however, as of the end of December 31, 2023, we acquired the warehouse equipment and is now a part of our fixed assets. We determine if an arrangement
          is a lease at inception and recognize right-of-use (&#8220;ROU&#8221;) assets and lease liabilities at commencement date based on the present value of the lease payments over the lease term.<span style="color: rgb(0, 0, 0);"> We elected not to record leases
            with an initial term of 12 months or less on the balance sheet for all our asset classes.</span></div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">For operating leases, the present value of our lease liabilities may include: (1) rental payments adjusted for inflation or market rates, and (2) lease terms with
          options to renew the lease or options to purchase leased equipment, when it is reasonably certain we will exercise such an option. The exercise of lease renewal or purchase option is generally at our discretion.&#160; Payments based on a change in an
          index or market rate are not considered in the determination of lease payments for purposes of measuring the related lease liability. We discount lease payments using our incremental borrowing rate based on information available as of the
          measurement date.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">We recognize rent expense related to our <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">operating leases assets on a straight-line basis over the lease term. Rent expense is recorded in operating expenses.<br/>
          </span></div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">For finance leases, our right-of-use assets are amortized on a straight-line basis over the earlier of the useful life of the right-of-use asset or the end of the
          lease term with rent expense recorded to operating expenses.&#160; We adjust the lease liability to reflect lease payments made during the period and interest incurred on the lease liability using the effective interest method. <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">The interest expense incurred is recorded in interest expense on the Condensed Consolidated
            Statements of Operations and Comprehensive Income</span>.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">The depreciable life of related leasehold improvements is based on the shorter of the useful life or the lease term. We also perform interim reviews of our lease
          assets for impairment when evidence exists that the carrying value of an asset group, including a lease asset, may not be recoverable.</div>

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

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">None of our lease agreements contain contingent rental payments, material residual value guarantees or material restrictive covenants.&#160; We have no sublease
          agreements and no lease agreements in which we are named as a lessor.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Impairment of Long-Lived Assets</span></span>. We evaluate long-lived assets on a quarterly basis to identify events or changes in
          circumstances (&#8220;triggering events&#8221;) that indicate the carrying value of certain assets may not be recoverable. Upon the occurrence of a triggering event, ROU lease assets, property and equipment and definite-lived intangible assets are reviewed
          for impairment and an impairment loss is recorded in the period in which it is determined that the carrying amount of the assets is not recoverable. The determination of recoverability is made based upon the estimated undiscounted future net cash
          flows of assets grouped at the lowest level for which there are identifiable cash flows independent of the cash flows of other groups of assets with such cash flows to be realized over the estimated remaining useful life of the primary asset
          within the asset group. The Company determined the lowest level of identifiable cash flows that are independent of other asset groups to be primarily at the individual store level. If the estimated undiscounted future net cash flows for a given
          store are less than the carrying amount of the related store assets, an impairment loss is determined by comparing the estimated fair value with the carrying value of the related assets. The impairment loss is then allocated across the asset
          group&#8217;s major classifications which in this case are operating lease assets and property and equipment. Triggering events at the store level could include material declines in operational and financial performance or planned changes in the use of
          assets, such as store relocation or store closure. This evaluation requires management to make judgements relating to future cash flows, growth rates and economic and market conditions. The fair value of an asset group is estimated using a
          discounted cash flow valuation method.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Fair Value of Financial Instruments</span></span>. We measure fair value as an exit price, which is the amount that would be
          received to sell an asset or paid to transfer a liability in an orderly transaction between market participants. As a basis for considering such assumptions, accounting standards establish a three-tier fair value hierarchy, which prioritizes the
          inputs used in the valuation methodologies in measuring fair value:</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div>
          <table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;">


  <tr>

    <td style="width: 36pt; vertical-align: top;">
                  <div style="margin-left: 18pt;"><span style="font-family: Times New Roman">&#9679;</span></div>
                </td>

    <td style="width: auto; vertical-align: top;">
                  <div style="text-align: justify;">Level 1 &#8211; observable inputs that reflect quoted prices in active markets for identical assets or liabilities.</div>
                </td>

  </tr>


</table>
        </div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div>
          <table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;">


  <tr>

    <td style="width: 36pt; vertical-align: top;">
                  <div style="margin-left: 18pt;"><span style="font-family: Times New Roman">&#9679;</span></div>
                </td>

    <td style="width: auto; vertical-align: top;">
                  <div style="text-align: justify;">Level 2 &#8211; significant observable inputs other than quoted prices in active markets for similar assets and liabilities, such as quoted prices for identical or similar assets or liabilities in markets that
                    are not active; or other inputs that are observable or can be corroborated by observable market data.</div>
                </td>

  </tr>


</table>
        </div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div>
          <table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;">


  <tr>

    <td style="width: 36pt; vertical-align: top;">
                  <div style="margin-left: 18pt;"><span style="font-family: Times New Roman">&#9679;</span></div>
                </td>

    <td style="width: auto; vertical-align: top;">
                  <div style="text-align: justify;">Level 3 &#8211; significant unobservable inputs reflecting our own assumptions, consistent with reasonably available assumptions made by other market participants.</div>
                </td>

  </tr>


</table>
          <div style="font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
          </div>

        </div>

<div><span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">Classification of the financial asset or liability within the hierarchy is
          determined based on the lowest level input that is significant to the fair value measurement. </span></div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">Our principal financial instruments held consist of T-Bills as of March 31, 2024 and December 31, 2023 which fall under level 1 of the fair value hierarchy; accounts
          receivable - trade, accounts payable - <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">trade, as of March 31, 2024 and
            December 31, 2023,&#160; all of which fall under Level 3 of the fair value hierarchy</span>.&#160; As of March 31, 2024 and December 31, 2023, the carrying values of our financial instruments, included in our Consolidated Balance Sheets, approximated
          their fair values. There were no transfers into or out of Levels 1, 2 and 3 during the three months ended March 31, 2024 and 2023.</div>

<div><br/>
          </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Income Taxes</span></span>. Income taxes are estimated for each jurisdiction in which we operate. This involves assessing current
          tax exposure together with temporary differences resulting from differing treatment of items for tax and financial statement accounting purposes. Any resulting deferred tax assets are evaluated for recoverability based on estimated future taxable
          income. To the extent it is more-likely-than-not that all or a portion of a deferred tax asset will not be realized, a valuation allowance is recorded.&#160; Our evaluation regarding whether a valuation allowance is required or should be adjusted also
          considers, among other things, the nature, frequency, and severity of recent losses, forecasts of future profitability and the duration of statutory carryforward periods.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">Deferred tax assets and liabilities are measured using the enacted tax rates in effect in the years when those temporary differences are expected to reverse. The
          effect on deferred taxes from a change in tax rate is recognized through continuing operations in the period that includes the enactment date of the change. Changes in tax laws and rates could affect recorded deferred tax assets and liabilities
          in the future.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">A tax benefit from an uncertain tax position may be recognized when it is more-likely-than-not that the position will be sustained upon examination, including
          resolutions of any related appeals or litigation processes, based on the technical merits. Income tax positions must meet a more-likely-than-not recognition threshold to be recognized.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">We recognize tax liabilities for uncertain tax positions and adjust these liabilities when our judgement changes as a result of the evaluation of new information not
          previously available. Due to the complexity of some of these uncertainties, the ultimate resolution may result in a payment that is materially different from the current estimate of the tax liabilities. These differences will be reflected as
          increases or decreases to income tax expense and the effective tax rate in the period in which new information becomes available. We recognize interest and/or penalties related to all tax positions in income tax expense. To the extent that
          accrued interest and penalties do not ultimately become payable, amounts accrued will be reduced and reflected as a reduction of the overall income tax provision in the period that such determination is made.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">We may be subject to periodic audits by the Internal Revenue Service and other taxing authorities. These audits may challenge certain of our tax positions, such as
          the timing and amount of deductions and allocation of taxable income to the various jurisdictions.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Stock-based compensation</span></span>. The Company&#8217;s stock-based compensation relates primarily to restricted stock unit (&#8220;RSU&#8221;)
          awards.&#160; Accounting guidance requires measurement and recognition of compensation expense at an amount equal to the grant date fair value. Compensation expense is recognized for service-based stock awards on a straight-line basis or ratably over
          the requisite service period, based on the closing price of the Company&#8217;s stock on the date of grant. The service-based awards typically vest ratably over the requisite service period, provided that the participant is employed on the vesting
          date. Compensation expense is reduced by actual forfeitures as they occur over the requisite service period of the awards.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">Performance-based RSUs vest, if at all, upon the Company satisfying certain performance targets. The Company records compensation expense for awards with a
          performance condition when it is probable that the condition will be achieved.&#160; If the Company determines it is not probable a performance condition will be achieved, no compensation expense is recognized. If the Company changes its assessment in
          a subsequent period and concludes it is probable a performance condition will be achieved, the Company will recognize compensation expense ratably between the period of the change in assessment through the expected date of satisfying the
          performance condition for vesting. If the Company subsequently assesses that it is no longer probable that a performance condition will be achieved, the accumulated expense that has been previously recognized will be reversed. The compensation
          expense ultimately recognized, if any, related to performance-based awards will equal the grant date fair value based on the number of shares for which the performance condition has been satisfied.&#160; We issue shares from authorized shares upon the
          lapsing of vesting restrictions on RSUs. We do not use cash to settle equity instruments issued under stock-based compensation awards. <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">The payments of the employees&#8217; tax liability for a portion of the vested shares are satisfied by withholding shares with a fair value equal to the tax liability</span>.</div>

<div><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Accounts Receivable - Trade and Expected Credit Losses</span></span>. Our receivables primarily arise from the sale of merchandise
          to customers that have applied for and been granted credit. Accounts receivable are stated at amounts due, net of an allowance. Accounts receivable are generally due within 30 days of invoicing. We estimate expected credit losses based on factors
          such as the composition of accounts receivable, the age of the accounts, historical bad debt experience, and our evaluation of the financial condition and past collection history of each customer. Management believes that the historical loss
          information it has compiled is a reasonable base on which to determine expected credit losses for trade receivables held at March 31, 2024, because the composition of the trade receivables at that date is consistent with that used in developing
          the historical credit-loss percentages (i.e., the similar risk characteristics of its customers and its credit practices have not changed significantly over time). Accordingly, the allowance for expected credit losses at March 31, 2024, December
          31, 2023, and January 1, 2023 each totaled less than $0.1 million.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: justify;"><span style="font-style: italic;"><span style="text-decoration: underline;">Other Intangible Assets</span></span>. Our intangible assets and related accumulated amortization relate to trademarks and
          copyrights that are definite-lived intangibles and are subject to amortization. The weighted average amortization period is 15 years
          for trademarks and copyrights. Amortization expense related to other intangible assets was less than $0.01 million during each of
          the three months ended March 31, 2024 and 2023 was recorded in operating expenses. Based on the current amount of intangible assets subject to amortization, we estimate amortization expense to be less than $0.01 million annually over the next five years. Our &#8220;Other intangible assets&#8221; will be fully amortized as of June 30 2024 but&#160; is now included in
          &#8220;Other assets&#8221; on the face of the balance sheet.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Comprehensive Income</span></span>. Comprehensive income includes net income and certain other items that are recorded directly to
          stockholders&#8217; equity. The Company&#8217;s only source of other comprehensive income is foreign currency translation adjustments, and those adjustments are presented net of tax.</div>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for the basis of presentation and significant accounting policies concepts. Basis of presentation describes the underlying basis used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS). Accounting policies describe all significant accounting policies of the reporting entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 235<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//235/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_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>18
<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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538936056528">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>NOTES PAYABLE AND LONG-TERM DEBT<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 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_DebtDisclosureAbstract', window );"><strong>NOTES PAYABLE AND LONG-TERM DEBT [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtDisclosureTextBlock', window );">NOTES PAYABLE AND LONG-TERM DEBT</a></td>
<td class="text">
<div style="text-align: justify; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">2. NOTES PAYABLE AND LONG-TERM DEBT</div>

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

<div><span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">On January 3, 2023, the Company entered
        into a credit agreement (the &#8220;Credit Agreement&#8221;) with JPMorgan Chase Bank, N.A. Under the Credit Agreement, the bank will provide the Company a credit facility of up to $5,000,000 on standard terms and conditions, including affirmative and negative covenants set forth in the Credit Agreement.&#160; As security for the credit facility, the Company has pledged as collateral certain of its
        assets, including the Company&#8217;s cash in deposit accounts, inventory and equipment. As of the date of this filing, no funds had been
        borrowed under this facility.</span>

      <br/></div>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for information about short-term and long-term debt arrangements, which includes amounts of borrowings under each line of credit, note payable, commercial paper issue, bonds indenture, debenture issue, own-share lending arrangements and any other contractual agreement to repay funds, and about the underlying arrangements, rationale for a classification as long-term, including repayment terms, interest rates, collateral provided, restrictions on use of assets and activities, whether or not in compliance with debt covenants, and other matters important to users of the financial statements, such as the effects of refinancing and noncompliance with debt covenants.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1B<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(c))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 3: 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><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1B<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 1B<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1B<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1B<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1C<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1C<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1C<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1C<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1C<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1C<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1E<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1E<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1I<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1I<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1I<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1I<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1I<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1I<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>19
<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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538846182336">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>INCOME TAX<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureAbstract', window );"><strong>INCOME TAX [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureTextBlock', window );">INCOME TAX</a></td>
<td class="text">
<div style="text-align: justify; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">3.&#160; INCOME TAX</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">Our effective tax rate for the three months ended March 31, 2024 and 2023 was 25.7% and 29.5%, respectively. Our effective tax rate differs from the federal statutory rate
        primarily due to U.S. state income tax expense, expenses that are nondeductible for tax purposes, the change in our valuation allowance associated with our deferred tax assets, and differences in tax rates in foreign jurisdictions.</div>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480990/946-20-50-13<br><br>Reference 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(h)(2))<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 740<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//740/tableOfContent<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-14<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 21<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-21<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 270<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482526/740-270-50-1<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 17<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-17<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.5.Q1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 11.C)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482603/740-30-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>20
<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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538936142880">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>STOCK-BASED COMPENSATION<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 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_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>STOCK-BASED COMPENSATION [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock', window );">STOCK-BASED COMPENSATION</a></td>
<td class="text">
<div style="text-align: justify; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">4.&#160; STOCK-BASED COMPENSATION</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">The Tandy Leather Factory, Inc. 2013 Restricted Stock Plan (the &#8220;2013 Plan&#8221;) was adopted by our Board of Directors in January 2013 and approved by our stockholders in
        June 2013. The 2013 Plan initially reserved up to 300,000 shares for restricted stock and restricted stock unit (&#8220;RSU&#8221;) awards to our
        executive officers, non-employee directors and other key employees. In June 2020, our stockholders approved an increase to the plan reserve to 800,000
        shares of our common stock and extended the 2013 Plan to June 2023. Awards granted under the 2013 Plan may be service-based awards or performance-based awards, and may be subject to a graded vesting schedule with a minimum vesting period of four years, unless otherwise determined by the Compensation Committee of the Board of Directors that administers the plan. All shares remaining
        ungranted under the 2013 Plan were cancelled upon the adoption of the 2023 Plan described below.<br/>
      </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"> <span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"><br/>
        </span></div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">The Tandy Leather Factory, Inc. 2023 Incentive Stock Plan (the &#8220;2023 Plan&#8221; and, together with the 2013 Plam, the &#8220;Plans&#8221;) was adopted by our Board of Directors in April 2023 and approved by our
          stockholders in June 2023.&#160; The 2023 Plan initially reserved up to 800,000 shares of our common stock for a variety of equity awards
          (including, but not limited to, RSUs, the only type of awards that have been granted to date) to our executive officers, non-employee directors and other key employees.&#160; In June 2023, as part of their annual director compensation, certain of our
          non-employee directors were granted a total of 12,993 service-based RSUs under the 2023 Plan, which will vest ratably over the next four years, subject to each participant&#8217;s continues service on the board as of each vesting date.&#160; In October 2023, the Company granted to Ms. Carr a
          total of 276,000 service-based RSUs under the 2023 Plan, which will vest ratably over the next three years, subject to Ms. Carr&#8217;s continued employment as of each vesting date.&#160; In March 2024, the Company granted to certain employees other than
          Ms. Carr a total of 59,649 RSUs under the 2023 Plan, which will vest ratably over the next three years, subject to the recipients&#8217; continued employment as of each vesting date.</span><br/>
      </div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">A summary of the activity for non-vested restricted stock and RSU awards as of March 31, 2024 is presented below:</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

<table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">Shares</div>
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"> (in thousands)</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">Weighted Average </div>
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">Share Price</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" rowspan="1" style="vertical-align: bottom; text-align: right;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" rowspan="1" style="vertical-align: bottom; text-align: right;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Balance, January 1, 2024</div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">623</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">4.37</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; white-space: nowrap;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Granted</div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">60</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">4.47</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Forfeited</div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">(6</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">)</div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">5.00</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Vested</div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">(3</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">)</div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">3.85</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;">Balance, <span style="text-indent: 0pt;">March 31</span>, 2024</div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0); font-weight: bold;">674</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
            </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0); font-weight: bold;">4.40</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

<div style="text-align: justify;"> <span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">The
          Company&#8217;s stock-based compensation relates primarily to RSU awards. For these service-based awards, our stock-based compensation expense, included in operating expenses, was $0.2 million and $0.2 million for the three months ended March 31, 2024 and
          2023, respectively. </span></div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">As of March 31, 2024, the Company has concluded it is not probable that the performance conditions related to performance-based RSUs granted to our CEO in October 2018
        will be achieved, and as a result no compensation expense related to performance-based RSUs has been recorded.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">As of March 31, 2024, there was unrecognized compensation cost related to non-vested, service-based RSU awards of $1.4 million, which will be recognized in each of the following years (dollars in thousands):</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

<table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;">


  <tr>

    <td style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-style: italic; text-align: center;"><span style="font-style: normal; font-weight: bold;">Unrecognized Expense</span><br/>
              </div>
            </td>

    <td colspan="1" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; text-align: left; width: 88%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); text-align: center;">2024<br/>
              </div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">475</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; text-align: left; width: 88%; white-space: nowrap;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); text-align: center;">2025<br/>
              </div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">548</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; text-align: left; width: 88%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); text-align: center;">2026<br/>
              </div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">403</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; text-align: center; width: 88%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">2027<br/>
            </td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom">21<br/>
            </td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; text-align: left; width: 88%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;"><br/>
              </div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
            </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0); font-weight: bold;">1,447</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">We issue shares from authorized shares upon the lapsing of vesting restrictions on restricted stock and RSUs. For the three months ended March 31, 2024 and 2023, we
        issued 2,727 and 17,518
        shares, respectively, resulting from the vesting of RSUs.&#160; We do not use cash to settle equity instruments issued under stock-based compensation awards.<span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">&#160;</span><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial;">The payment of the employees&#8217; tax liability for a portion of the vested shares may be satisfied by withholding shares with a fair value equal
          to the tax liability.</span></div>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 2: 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 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 (a)<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 (h)(2)<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 (h)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (l)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>21
<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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538844637680">
<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">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>EARNINGS PER SHARE [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareTextBlock', window );">EARNINGS PER SHARE</a></td>
<td class="text">
<div style="text-align: justify; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">5.&#160; EARNINGS PER SHARE</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">Basic earnings per share (&#8220;EPS&#8221;) are computed based on the weighted average number of common shares outstanding during the period.&#160; Diluted EPS includes additional
        common shares that would have been outstanding if potential common shares with a dilutive effect, such as stock awards from the Company&#8217;s restricted stock plan, had been issued.&#160; Anti-dilutive securities represent potentially dilutive securities
        which are excluded from the computation of diluted EPS as their impact would be anti-dilutive.&#160; Diluted EPS is computed using the treasury stock method.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">The following table sets forth the computation of basic and diluted EPS for the three months ended March 31, 2024 and 2023:</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

<table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-style: italic;"><br/>
              </div>
            </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">Three Months Ended March 31,</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><span style="font-style: italic;">(in thousands, except share data)</span> <br/>
            </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">2024</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">2023</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" rowspan="1" style="vertical-align: bottom; text-align: right;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" rowspan="1" style="vertical-align: bottom; text-align: right;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; font-weight: bold;" valign="bottom">Numerator:</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" rowspan="1" style="vertical-align: bottom; text-align: right;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" rowspan="1" style="vertical-align: bottom; text-align: right;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);">Net income<br/>
              </div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">525</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">664</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;">Denominator:</div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; width: 76%;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Basic weighted-average common shares outstanding</div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">8,400,354</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">8,303,117</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none; width: 76%;" valign="bottom">
              <div style="margin-top: 0px; margin-bottom: 0px; text-align: left; text-indent: 9pt;">Dilutive effect of service-based restricted stock awards granted to Board of Directors under the Plans</div>
            </td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom">5,108</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom">47,050</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none; text-indent: 9pt; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">Dilutive effect of service-based restricted stock awards granted to employees under the Plans<br/>
            </td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">94,892</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">-</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Diluted weighted-average common shares outstanding</div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">8,500,354</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">8,350,166</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">Basic earnings per share <br/>
            </td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">$</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">0.06</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">$</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">0.08</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom">Diluted earnings per share <br/>
            </td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">$</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">0.06</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">$</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">0.08</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>22
<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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538844795600">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>COMMITMENTS AND CONTINGENCIES<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 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_CommitmentsAndContingenciesDisclosureAbstract', window );"><strong>COMMITMENTS AND CONTINGENCIES [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock', window );">COMMITMENTS AND CONTINGENCIES</a></td>
<td class="text">
<div style="text-align: justify; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">6.&#160; COMMITMENTS AND CONTINGENCIES</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

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

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">We are periodically involved in litigation that arises in the ordinary course of business and operations.&#160; There are no such matters pending that we expect to have a
          material impact on our financial position or operating results.&#160; Legal costs associated with the resolution of claims, lawsuits and other contingencies are expensed as incurred.</div>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for commitments and contingencies.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 440<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482648/440-10-50-4<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//450/tableOfContent<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 954<br> -SubTopic 440<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480327/954-440-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 440<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482648/440-10-50-4<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 440<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//440/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>23
<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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538844869424">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>SHARE REPURCHASE PROGRAM AND SHARE REPURCHASES<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 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_tlfa_SHAREREPURCHASEPROGRAMANDSHAREREPURCHASESAbstract', window );"><strong>SHARE REPURCHASE PROGRAM AND SHARE REPURCHASES [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tlfa_ShareRepurchaseProgramAndShareRepurchasesTextBlock', window );">SHARE REPURCHASE PROGRAM AND SHARE REPURCHASES</a></td>
<td class="text">
<div style="text-align: justify; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;">7.&#160; SHARE REPURCHASE PROGRAM AND SHARE REPURCHASES</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">On August 8, 2022, the Board of Directors approved a new program to repurchase up to $5.0 million of the Company&#8217;s common stock between that date and August 31, 2024.&#160; As of March 31, 2024, $5.0
          million remained available for repurchase under this new program.</div>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tlfa_SHAREREPURCHASEPROGRAMANDSHAREREPURCHASESAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tlfa_SHAREREPURCHASEPROGRAMANDSHAREREPURCHASESAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tlfa_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tlfa_ShareRepurchaseProgramAndShareRepurchasesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for the share repurchase program and share repurchases.</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;">tlfa_ShareRepurchaseProgramAndShareRepurchasesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tlfa_</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>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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538848640192">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES (Policies)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 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_AccountingPoliciesAbstract', window );"><strong>BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsPolicyTextBlock', window );">Cash and cash equivalents</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Cash and cash equivalents</span></span>. The Company considers investments with a maturity when purchased of three months or less
          to be cash equivalents. All credit card, debit card and electronic transfer transactions that process in less than seven days are classified as cash and cash equivalents.</div>
<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock', window );">Foreign currency translation and transactions</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Foreign currency translation and transactions</span></span>. Foreign currency translation adjustments arise from activities of our
          foreign subsidiaries.&#160; Results of operations are translated into U.S. dollars using the average exchange rates during the period, while assets and liabilities are translated using period-end exchange rates.&#160; Foreign currency translation
          adjustments of assets and liabilities are recorded in stockholders&#8217; equity and presented net of tax. Gains and losses resulting from foreign currency translations are <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">reported in the Condensed Consolidated Statements of Operations and Comprehensive Income (Loss) under the caption &#8220;Foreign currency
            translation adjustments, net of tax&#8221; for all periods presented</span>.</div>
<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock', window );">Revenue Recognition</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Revenue Recognition.</span></span>&#160; Our revenue is earned from sales of merchandise and generally occurs via three methods: (1) at
          the store counter, (2) via web sales, and (3) sales of product directly to commercial customers. We recognize revenue when we satisfy the performance obligation of transferring control of product merchandise over to a customer. At the store
          counter, our performance obligation is met, and revenue is recognized when a sales transaction occurs with a customer. When merchandise is shipped to a customer, our performance obligation is met, and revenue is recognized when control passes to
          the customer. Shipping terms are normally free on board (&#8220;FOB&#8221;) shipping point and control passes when the merchandise is shipped to the customer. Sales tax and comparable foreign tax are excluded from net sales, while shipping charged to our
          customers is included in net sales. Net sales are based on the amount of consideration that we expect to receive, reduced by estimates for future merchandise returns.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">The <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">sales return allowance is based each year on historical customer return behavior and other known factors and reduces net sales and cost of sales, accordingly. The sales return allowance included in accrued expense and other
            liabilities was $0.1 million, $0.1
            million, and $0.2 million as of March 31, 2024, December 31, 2023, and January 1, 2023. The estimated value of merchandise expected
            to be returned included in other current assets was $0.1 million as of March 31, 2024, December 31, 2023, and January 1, 2023</span>.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">We <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">record a gift card liability for the unfulfilled performance obligation on the date we issue a gift card to a customer. We record revenue and reduce the gift card liability as the customer redeems the gift card. In addition, for gift
            card breakage, we recognize a proportionate amount for the expected unredeemed gift cards over the expected customer redemption period, which is one year. As of March 31, 2024, December 31, 2023 and January1, 2023, our gift card liability, included in accrued expenses and other liabilities, was $0.2 million, $0.3 million and $0.3 million, respectively. We recognized gift card revenue of $0.2 million for the three months ended March 31, 2024 and 2023</span>.</div>

<div><br/>
          </div>

<div style="text-align: justify; font-family: 'Times New Roman'; background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">For the three
            months ended March 31, 2024 and 2023, we recognized $0.1 million and $0.2 million respectively in net sales associated with gift cards.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Disaggregated Revenue.</span>&#160; </span><span style="font-family: 'Times New Roman'; font-size: 10pt; color: #000000;">In the following table, revenue for the three months ended March 31,
          2024 and 2023 is disaggregated by geographic areas as follows:</span></div>

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

<table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; width: 100%;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"> </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
                <div style="text-align: center; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Three Months Ended March 31,</div>
              </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
                <div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman',Times,serif; font-size: 10pt; font-style: italic;">(in thousands)</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
                <div style="text-align: center; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">2024</div>
              </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
                <div style="text-align: center; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">2023</div>
              </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
                <div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">United States</div>
              </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">17,085</div>
              </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">18,099</div>
              </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; white-space: nowrap;" valign="bottom">
                <div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Canada</div>
              </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,897</div>
              </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,907</div>
              </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">Other </td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">293</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">354</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">
                <div style="text-align: left; text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman',Times,serif; font-size: 10pt; font-weight: bold;">Net sales</div>
              </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">$</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">19,275</div>
              </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">$</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">20,360</div>
              </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: justify;">Geographic sales information is based on the location of the customer. As a percentage of our consolidated net sales, excluding
            Canada, our other international net sales were less than 2.0% for the three months ended March 31, 2024, and 2023 respectively.</div>
<span></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_tlfa_RevenueRecognitionDiscountsPolicyTextBlock', window );">Discounts</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="text-decoration: underline;"><span style="font-style: italic; font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-variant: normal; text-transform: none;">Discounts</span></span><span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-variant: normal; text-transform: none;"><span style="text-decoration: underline;">.</span> <span style="font-style: normal;">We offer six&#160; classes of customer discounts:&#160; 1) Retail, 2) Military/First Responder, 3) Business, 4) Commercial, 5) Commercial Pro, and 6) Employees.
              There are no other classes of discounts and any discounts given will fall into one of these six categories. Such discounts are not
              deemed to be variable consideration nor convey a material right to these customers since the discounted pricing they receive in a discount class is not incremental to others within the same class and there is no retrospective impact of such
              discounts. As a result, sales are reported after deduction of discounts at the point of sale. We do not pay slotting fees or make other payments to resellers.</span></span></div>
<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SellingGeneralAndAdministrativeExpensesPolicyTextBlock', window );">Operating expenses</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Operating</span></span><span style="text-decoration: underline;">&#160;</span><span style="font-style: italic;"><span style="text-decoration: underline;">expense</span></span><span style="text-decoration: underline;">s</span>. Operating expenses include all
          selling, general and administrative costs, including wages and benefits, rent and occupancy costs, depreciation, advertising, store operating expenses, outbound freight charges (to ship merchandise to customers), and corporate office costs.</div>
<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock', window );">Property and equipment, net of accumulated depreciation</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Property and equipment, net of accumulated depreciation</span></span>. Property and equipment are stated at cost. Depreciation is
          computed using the straight-line method over the estimated useful lives of the assets, which are <span style="-sec-ix-hidden:Fact_138de38eb2164d4da489f5d1fc8ccb33">three</span> to ten years for equipment and machinery, <span style="-sec-ix-hidden:Fact_081f9d3879424da5a84f1d889d24a907">seven</span>
          to fifteen years for furniture and fixtures, five years for vehicles, and forty years for buildings and related improvements. Leasehold
          improvements are amortized over the lesser of the life of the lease or the useful life of the asset. Repairs and maintenance costs are expensed as incurred but are capitalized if extend the life of the assets.</div>
<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryPolicyTextBlock', window );">Inventory</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Inventory</span></span>. Inventory is stated at the lower of first-in, first-out (&#8220;FIFO&#8221;) cost or net realizable value, and FIFO
          layers are maintained at the location level. Finished goods held for sale include the cost of merchandise purchases, the costs to bring the merchandise to our Texas distribution center, warehousing and handling expenditures, and distributing and
          delivering merchandise to our stores. These costs include depreciation of long-lived assets utilized in acquiring, warehousing and distributing inventory. Manufacturing inventory including raw materials and work-in-process is valued on a first
          in, first out basis using full absorption accounting which includes material, labor, and other applicable manufacturing overhead. Carrying values of inventory are analyzed and, to the extent that the cost of inventory exceeds the net realizable
          value, provisions are made to reduce the carrying amount of the inventory.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">We regularly review all inventory items to determine if there are (i) damaged goods (e.g., for leather, excessive scars or damage from ultra-violet (&#8220;UV&#8221;) light),
          (ii) items that need to be removed from our product line (e.g., slow-moving items, inability of a supplier to provide items of acceptable quality or quantity, and to maintain freshness in the product line) and (iii) pricing actions that need to
          be taken to adequately value our inventory at the lower of cost or net realizable value.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">Since the determination of net realizable value of inventory involves both estimation and judgement with regard to market values and reasonable costs to sell,
          differences in these estimates could result in ultimate valuations that differ from the recorded asset.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">The majority of inventory purchases and commitments are made in U.S. dollars in order to limit the Company&#8217;s exposure to foreign currency fluctuations. Goods shipped
          to us are recorded as inventory owned by us when the risk of loss shifts to us from the supplier.<span style="color: rgb(0, 0, 0);"><br/>
          </span></div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Inventory is physically counted partially during each quarter and fully counted at year-end in the Texas distribution center. At the store
          level, inventory is partially&#160; counted each quarter for high value items and fully counted at year-end. Inventory is then adjusted in our accounting system to reflect actual count results. </div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
                <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-style: italic;">(in thousands)</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom">
                <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">March 31, 2024</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom">
                <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">December 31, 2023</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom;" valign="bottom">
                <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">On hand:</div>
              </td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);" valign="bottom">
                <div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);">Finished goods held for sale</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom">
                <div style="color: rgb(0, 0, 0);">$</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom">
                <div style="color: rgb(0, 0, 0);">33,625</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom">
                <div style="color: rgb(0, 0, 0);">$</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom">
                <div style="color: rgb(0, 0, 0);">33,350</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
                <div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);">Raw materials and work in process</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
                <div style="color: rgb(0, 0, 0);">1,248</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
                <div style="color: rgb(0, 0, 0);">1,774</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom">
                <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Inventory in transit</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">
                <div style="color: rgb(0, 0, 0);">1,802</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">
                <div style="color: rgb(0, 0, 0);">2,869</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom">
                <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;">TOTAL</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom">
                <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom">
                <div style="color: rgb(0, 0, 0); font-weight: bold;">36,675</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom">
                <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom">
                <div style="color: rgb(0, 0, 0); font-weight: bold;">37,993</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>
<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeLeasesPolicyTextBlock', window );">Leases</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="text-decoration: underline;"><span style="font-style: italic;">Leases</span></span><span style="font-style: italic;">.</span> We lease certain real estate for our retail store locations and may
          lease warehouse equipment for our Texas distribution center under long-term lease agreements; however, as of the end of December 31, 2023, we acquired the warehouse equipment and is now a part of our fixed assets. We determine if an arrangement
          is a lease at inception and recognize right-of-use (&#8220;ROU&#8221;) assets and lease liabilities at commencement date based on the present value of the lease payments over the lease term.<span style="color: rgb(0, 0, 0);"> We elected not to record leases
            with an initial term of 12 months or less on the balance sheet for all our asset classes.</span></div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">For operating leases, the present value of our lease liabilities may include: (1) rental payments adjusted for inflation or market rates, and (2) lease terms with
          options to renew the lease or options to purchase leased equipment, when it is reasonably certain we will exercise such an option. The exercise of lease renewal or purchase option is generally at our discretion.&#160; Payments based on a change in an
          index or market rate are not considered in the determination of lease payments for purposes of measuring the related lease liability. We discount lease payments using our incremental borrowing rate based on information available as of the
          measurement date.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">We recognize rent expense related to our <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">operating leases assets on a straight-line basis over the lease term. Rent expense is recorded in operating expenses.<br/>
          </span></div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">For finance leases, our right-of-use assets are amortized on a straight-line basis over the earlier of the useful life of the right-of-use asset or the end of the
          lease term with rent expense recorded to operating expenses.&#160; We adjust the lease liability to reflect lease payments made during the period and interest incurred on the lease liability using the effective interest method. <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">The interest expense incurred is recorded in interest expense on the Condensed Consolidated
            Statements of Operations and Comprehensive Income</span>.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">The depreciable life of related leasehold improvements is based on the shorter of the useful life or the lease term. We also perform interim reviews of our lease
          assets for impairment when evidence exists that the carrying value of an asset group, including a lease asset, may not be recoverable.</div>

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

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">None of our lease agreements contain contingent rental payments, material residual value guarantees or material restrictive covenants.&#160; We have no sublease
          agreements and no lease agreements in which we are named as a lessor.</div>
<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock', window );">Impairment of Long-Lived Assets</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Impairment of Long-Lived Assets</span></span>. We evaluate long-lived assets on a quarterly basis to identify events or changes in
          circumstances (&#8220;triggering events&#8221;) that indicate the carrying value of certain assets may not be recoverable. Upon the occurrence of a triggering event, ROU lease assets, property and equipment and definite-lived intangible assets are reviewed
          for impairment and an impairment loss is recorded in the period in which it is determined that the carrying amount of the assets is not recoverable. The determination of recoverability is made based upon the estimated undiscounted future net cash
          flows of assets grouped at the lowest level for which there are identifiable cash flows independent of the cash flows of other groups of assets with such cash flows to be realized over the estimated remaining useful life of the primary asset
          within the asset group. The Company determined the lowest level of identifiable cash flows that are independent of other asset groups to be primarily at the individual store level. If the estimated undiscounted future net cash flows for a given
          store are less than the carrying amount of the related store assets, an impairment loss is determined by comparing the estimated fair value with the carrying value of the related assets. The impairment loss is then allocated across the asset
          group&#8217;s major classifications which in this case are operating lease assets and property and equipment. Triggering events at the store level could include material declines in operational and financial performance or planned changes in the use of
          assets, such as store relocation or store closure. This evaluation requires management to make judgements relating to future cash flows, growth rates and economic and market conditions. The fair value of an asset group is estimated using a
          discounted cash flow valuation method.</div>
<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueOfFinancialInstrumentsPolicy', window );">Fair Value of Financial Instruments</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Fair Value of Financial Instruments</span></span>. We measure fair value as an exit price, which is the amount that would be
          received to sell an asset or paid to transfer a liability in an orderly transaction between market participants. As a basis for considering such assumptions, accounting standards establish a three-tier fair value hierarchy, which prioritizes the
          inputs used in the valuation methodologies in measuring fair value:</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div>
          <table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;">


  <tr>

    <td style="width: 36pt; vertical-align: top;">
                  <div style="margin-left: 18pt;"><span style="font-family: Times New Roman">&#9679;</span></div>
                </td>

    <td style="width: auto; vertical-align: top;">
                  <div style="text-align: justify;">Level 1 &#8211; observable inputs that reflect quoted prices in active markets for identical assets or liabilities.</div>
                </td>

  </tr>


</table>
        </div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div>
          <table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;">


  <tr>

    <td style="width: 36pt; vertical-align: top;">
                  <div style="margin-left: 18pt;"><span style="font-family: Times New Roman">&#9679;</span></div>
                </td>

    <td style="width: auto; vertical-align: top;">
                  <div style="text-align: justify;">Level 2 &#8211; significant observable inputs other than quoted prices in active markets for similar assets and liabilities, such as quoted prices for identical or similar assets or liabilities in markets that
                    are not active; or other inputs that are observable or can be corroborated by observable market data.</div>
                </td>

  </tr>


</table>
        </div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div>
          <table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;">


  <tr>

    <td style="width: 36pt; vertical-align: top;">
                  <div style="margin-left: 18pt;"><span style="font-family: Times New Roman">&#9679;</span></div>
                </td>

    <td style="width: auto; vertical-align: top;">
                  <div style="text-align: justify;">Level 3 &#8211; significant unobservable inputs reflecting our own assumptions, consistent with reasonably available assumptions made by other market participants.</div>
                </td>

  </tr>


</table>
          <div style="font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
          </div>

        </div>

<div><span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">Classification of the financial asset or liability within the hierarchy is
          determined based on the lowest level input that is significant to the fair value measurement. </span></div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">Our principal financial instruments held consist of T-Bills as of March 31, 2024 and December 31, 2023 which fall under level 1 of the fair value hierarchy; accounts
          receivable - trade, accounts payable - <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">trade, as of March 31, 2024 and
            December 31, 2023,&#160; all of which fall under Level 3 of the fair value hierarchy</span>.&#160; As of March 31, 2024 and December 31, 2023, the carrying values of our financial instruments, included in our Consolidated Balance Sheets, approximated
          their fair values. There were no transfers into or out of Levels 1, 2 and 3 during the three months ended March 31, 2024 and 2023.</div>
<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxPolicyTextBlock', window );">Income Taxes</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Income Taxes</span></span>. Income taxes are estimated for each jurisdiction in which we operate. This involves assessing current
          tax exposure together with temporary differences resulting from differing treatment of items for tax and financial statement accounting purposes. Any resulting deferred tax assets are evaluated for recoverability based on estimated future taxable
          income. To the extent it is more-likely-than-not that all or a portion of a deferred tax asset will not be realized, a valuation allowance is recorded.&#160; Our evaluation regarding whether a valuation allowance is required or should be adjusted also
          considers, among other things, the nature, frequency, and severity of recent losses, forecasts of future profitability and the duration of statutory carryforward periods.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">Deferred tax assets and liabilities are measured using the enacted tax rates in effect in the years when those temporary differences are expected to reverse. The
          effect on deferred taxes from a change in tax rate is recognized through continuing operations in the period that includes the enactment date of the change. Changes in tax laws and rates could affect recorded deferred tax assets and liabilities
          in the future.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">A tax benefit from an uncertain tax position may be recognized when it is more-likely-than-not that the position will be sustained upon examination, including
          resolutions of any related appeals or litigation processes, based on the technical merits. Income tax positions must meet a more-likely-than-not recognition threshold to be recognized.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">We recognize tax liabilities for uncertain tax positions and adjust these liabilities when our judgement changes as a result of the evaluation of new information not
          previously available. Due to the complexity of some of these uncertainties, the ultimate resolution may result in a payment that is materially different from the current estimate of the tax liabilities. These differences will be reflected as
          increases or decreases to income tax expense and the effective tax rate in the period in which new information becomes available. We recognize interest and/or penalties related to all tax positions in income tax expense. To the extent that
          accrued interest and penalties do not ultimately become payable, amounts accrued will be reduced and reflected as a reduction of the overall income tax provision in the period that such determination is made.</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">We may be subject to periodic audits by the Internal Revenue Service and other taxing authorities. These audits may challenge certain of our tax positions, such as
          the timing and amount of deductions and allocation of taxable income to the various jurisdictions.</div>
<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy', window );">Stock-based compensation</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Stock-based compensation</span></span>. The Company&#8217;s stock-based compensation relates primarily to restricted stock unit (&#8220;RSU&#8221;)
          awards.&#160; Accounting guidance requires measurement and recognition of compensation expense at an amount equal to the grant date fair value. Compensation expense is recognized for service-based stock awards on a straight-line basis or ratably over
          the requisite service period, based on the closing price of the Company&#8217;s stock on the date of grant. The service-based awards typically vest ratably over the requisite service period, provided that the participant is employed on the vesting
          date. Compensation expense is reduced by actual forfeitures as they occur over the requisite service period of the awards.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">Performance-based RSUs vest, if at all, upon the Company satisfying certain performance targets. The Company records compensation expense for awards with a
          performance condition when it is probable that the condition will be achieved.&#160; If the Company determines it is not probable a performance condition will be achieved, no compensation expense is recognized. If the Company changes its assessment in
          a subsequent period and concludes it is probable a performance condition will be achieved, the Company will recognize compensation expense ratably between the period of the change in assessment through the expected date of satisfying the
          performance condition for vesting. If the Company subsequently assesses that it is no longer probable that a performance condition will be achieved, the accumulated expense that has been previously recognized will be reversed. The compensation
          expense ultimately recognized, if any, related to performance-based awards will equal the grant date fair value based on the number of shares for which the performance condition has been satisfied.&#160; We issue shares from authorized shares upon the
          lapsing of vesting restrictions on RSUs. We do not use cash to settle equity instruments issued under stock-based compensation awards. <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">The payments of the employees&#8217; tax liability for a portion of the vested shares are satisfied by withholding shares with a fair value equal to the tax liability</span>.</div>
<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy', window );">Accounts Receivable - Trade and Expected Credit Losses</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Accounts Receivable - Trade and Expected Credit Losses</span></span>. Our receivables primarily arise from the sale of merchandise
          to customers that have applied for and been granted credit. Accounts receivable are stated at amounts due, net of an allowance. Accounts receivable are generally due within 30 days of invoicing. We estimate expected credit losses based on factors
          such as the composition of accounts receivable, the age of the accounts, historical bad debt experience, and our evaluation of the financial condition and past collection history of each customer. Management believes that the historical loss
          information it has compiled is a reasonable base on which to determine expected credit losses for trade receivables held at March 31, 2024, because the composition of the trade receivables at that date is consistent with that used in developing
          the historical credit-loss percentages (i.e., the similar risk characteristics of its customers and its credit practices have not changed significantly over time). Accordingly, the allowance for expected credit losses at March 31, 2024, December
          31, 2023, and January 1, 2023 each totaled less than $0.1 million.</div>
<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsFiniteLivedPolicy', window );">Other Intangibles Assets</a></td>
<td class="text">
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: justify;"><span style="font-style: italic;"><span style="text-decoration: underline;">Other Intangible Assets</span></span>. Our intangible assets and related accumulated amortization relate to trademarks and
          copyrights that are definite-lived intangibles and are subject to amortization. The weighted average amortization period is 15 years
          for trademarks and copyrights. Amortization expense related to other intangible assets was less than $0.01 million during each of
          the three months ended March 31, 2024 and 2023 was recorded in operating expenses. Based on the current amount of intangible assets subject to amortization, we estimate amortization expense to be less than $0.01 million annually over the next five years. Our &#8220;Other intangible assets&#8221; will be fully amortized as of June 30 2024 but&#160; is now included in
          &#8220;Other assets&#8221; on the face of the balance sheet.</div>
<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock', window );">Comprehensive Income</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-style: italic;"><span style="text-decoration: underline;">Comprehensive Income</span></span>. Comprehensive income includes net income and certain other items that are recorded directly to
          stockholders&#8217; equity. The Company&#8217;s only source of other comprehensive income is foreign currency translation adjustments, and those adjustments are presented net of tax.</div>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tlfa_RevenueRecognitionDiscountsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 sales discounts.</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;">tlfa_RevenueRecognitionDiscountsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tlfa_</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_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_ComprehensiveIncomePolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 comprehensive income.</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_ComprehensiveIncomePolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 60<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 820<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482053/820-10-60-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 825<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_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for (1) transactions denominated in a currency other than the reporting enterprise's functional currency, (2) translating foreign currency financial statements that are incorporated into the financial statements of the reporting enterprise by consolidation, combination, or the equity method of accounting, and (3) remeasurement of the financial statements of a foreign reporting enterprise in a hyperinflationary economy.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//830/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_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 and measuring the impairment of long-lived assets. An entity also may disclose its accounting policy for long-lived assets to be sold. This policy excludes goodwill and intangible assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 360<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.CC)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480091/360-10-S99-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 05<br> -Paragraph 4<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482338/360-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_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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 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 2: 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 3: 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 4: 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 5: 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 6: 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 7: 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><br>Reference 8: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_IntangibleAssetsFiniteLivedPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 finite-lived intangible assets. This accounting policy also might address: (1) the amortization method used; (2) the useful lives of such assets; and (3) how the entity assesses and measures impairment of such 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 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483154/926-20-50-5<br><br>Reference 2: 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483426/235-10-50-4<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 920<br> -SubTopic 350<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483256/920-350-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 920<br> -SubTopic 350<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483256/920-350-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 920<br> -SubTopic 350<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483256/920-350-50-4<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482665/350-30-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsFiniteLivedPolicy</td>
</tr>
<tr>
<td style="padding-right: 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 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483489/210-10-50-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(6)(b))<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 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 4: 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/2147482105/912-330-50-1<br><br>Reference 5: 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 6: 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 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_LesseeLeasesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for leasing arrangement entered into by lessee.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<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/2147478964/842-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_LesseeLeasesPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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/2147479440/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/2147480321/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/2147480321/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_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for determining the allowance for doubtful accounts for trade and other accounts receivable balances, and when impairments, charge-offs or recoveries are recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481962/310-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_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for revenue from contract with customer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-17<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-19<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 18<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-18<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 18<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-18<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 20<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-20<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-20<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-20<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-20<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (e)<br> -SubTopic 10<br> -Topic 235<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483426/235-10-50-4<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org//606/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SellingGeneralAndAdministrativeExpensesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 inclusion of significant items in the selling, general and administrative (or similar) expense report caption.</p></div>
<a href="javascript: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> -Subparagraph (a)<br> -SubTopic 35<br> -Topic 720<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483406/720-35-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_SellingGeneralAndAdministrativeExpensesPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<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)(v)<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 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 5: 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 6: 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 7: 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 8: 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 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 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 11: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>25
<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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538935195232">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES (Tables)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 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_AccountingPoliciesAbstract', window );"><strong>BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueTableTextBlock', window );">Disaggregated Revenue</a></td>
<td class="text"><span style="font-family: 'Times New Roman'; font-size: 10pt; color: #000000;">In the following table, revenue for the three months ended March 31,
          2024 and 2023 is disaggregated by geographic areas as follows:</span>
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
        </div>

<table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; width: 100%;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"> </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
                <div style="text-align: center; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Three Months Ended March 31,</div>
              </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
                <div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman',Times,serif; font-size: 10pt; font-style: italic;">(in thousands)</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
                <div style="text-align: center; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">2024</div>
              </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
                <div style="text-align: center; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">2023</div>
              </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
                <div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">United States</div>
              </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">17,085</div>
              </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">18,099</div>
              </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; white-space: nowrap;" valign="bottom">
                <div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Canada</div>
              </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,897</div>
              </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,907</div>
              </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">Other </td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">293</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">354</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">
                <div style="text-align: left; text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman',Times,serif; font-size: 10pt; font-weight: bold;">Net sales</div>
              </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">$</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">19,275</div>
              </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">$</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">
                <div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">20,360</div>
              </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>
<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfInventoryCurrentTableTextBlock', window );">Inventory</a></td>
<td class="text">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Inventory is physically counted partially during each quarter and fully counted at year-end in the Texas distribution center. At the store
          level, inventory is partially&#160; counted each quarter for high value items and fully counted at year-end. Inventory is then adjusted in our accounting system to reflect actual count results. </div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
                <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-style: italic;">(in thousands)</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom">
                <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">March 31, 2024</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom">
                <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">December 31, 2023</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom;" valign="bottom">
                <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">On hand:</div>
              </td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);" valign="bottom">
                <div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);">Finished goods held for sale</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom">
                <div style="color: rgb(0, 0, 0);">$</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom">
                <div style="color: rgb(0, 0, 0);">33,625</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom">
                <div style="color: rgb(0, 0, 0);">$</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom">
                <div style="color: rgb(0, 0, 0);">33,350</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
                <div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);">Raw materials and work in process</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
                <div style="color: rgb(0, 0, 0);">1,248</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
                <div style="color: rgb(0, 0, 0);">1,774</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom">
                <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Inventory in transit</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">
                <div style="color: rgb(0, 0, 0);">1,802</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">
                <div style="color: rgb(0, 0, 0);">2,869</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom">
                <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;">TOTAL</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom">
                <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom">
                <div style="color: rgb(0, 0, 0); font-weight: bold;">36,675</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom">
                <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom">
                <div style="color: rgb(0, 0, 0); font-weight: bold;">37,993</div>
              </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -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_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> -Topic 210<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>26
<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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538937096656">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>STOCK-BASED COMPENSATION (Tables)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 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_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>STOCK-BASED COMPENSATION [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock', window );">Activity of Non-vested Restricted Common Stock Awards</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">A summary of the activity for non-vested restricted stock and RSU awards as of March 31, 2024 is presented below:</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

<table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">Shares</div>
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"> (in thousands)</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">Weighted Average </div>
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">Share Price</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" rowspan="1" style="vertical-align: bottom; text-align: right;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" rowspan="1" style="vertical-align: bottom; text-align: right;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Balance, January 1, 2024</div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">623</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">4.37</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; white-space: nowrap;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Granted</div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">60</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">4.47</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Forfeited</div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">(6</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">)</div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">5.00</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Vested</div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">(3</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">)</div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">3.85</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;">Balance, <span style="text-indent: 0pt;">March 31</span>, 2024</div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0); font-weight: bold;">674</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
            </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0); font-weight: bold;">4.40</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>
<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock', window );">Non-vested, Service-based Awards</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">As of March 31, 2024, there was unrecognized compensation cost related to non-vested, service-based RSU awards of $1.4 million, which will be recognized in each of the following years (dollars in thousands):</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

<table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;">


  <tr>

    <td style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-style: italic; text-align: center;"><span style="font-style: normal; font-weight: bold;">Unrecognized Expense</span><br/>
              </div>
            </td>

    <td colspan="1" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; text-align: left; width: 88%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); text-align: center;">2024<br/>
              </div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">475</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; text-align: left; width: 88%; white-space: nowrap;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); text-align: center;">2025<br/>
              </div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">548</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; text-align: left; width: 88%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); text-align: center;">2026<br/>
              </div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">403</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; text-align: center; width: 88%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">2027<br/>
            </td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom">21<br/>
            </td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; text-align: left; width: 88%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;"><br/>
              </div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0); font-weight: bold;">$</div>
            </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0); font-weight: bold;">1,447</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 the number and weighted-average grant date fair value for restricted stock and restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock and restricted stock units that were granted, vested, or forfeited during the year.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 cost not yet recognized and weighted-average period over which cost is expected to be recognized for nonvested award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Subparagraph (i)<br> -Name Accounting Standards Codification<br> -Paragraph 2<br> -Section 50<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_ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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>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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538936143408">
<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">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>EARNINGS PER SHARE [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock', window );">Computation of Basic and Diluted EPS</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">The following table sets forth the computation of basic and diluted EPS for the three months ended March 31, 2024 and 2023:</div>

<div style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </div>

<table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-style: italic;"><br/>
              </div>
            </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">Three Months Ended March 31,</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><span style="font-style: italic;">(in thousands, except share data)</span> <br/>
            </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">2024</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
              <div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">2023</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" rowspan="1" style="vertical-align: bottom; text-align: right;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" rowspan="1" style="vertical-align: bottom; text-align: right;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; font-weight: bold;" valign="bottom">Numerator:</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" rowspan="1" style="vertical-align: bottom; text-align: right;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" rowspan="1" style="vertical-align: bottom; text-align: right;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);">Net income<br/>
              </div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">525</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">$</div>
            </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">664</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;">Denominator:</div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; width: 76%;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Basic weighted-average common shares outstanding</div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">8,400,354</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">8,303,117</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none; width: 76%;" valign="bottom">
              <div style="margin-top: 0px; margin-bottom: 0px; text-align: left; text-indent: 9pt;">Dilutive effect of service-based restricted stock awards granted to Board of Directors under the Plans</div>
            </td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom">5,108</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom">47,050</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none; text-indent: 9pt; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">Dilutive effect of service-based restricted stock awards granted to employees under the Plans<br/>
            </td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">94,892</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">-</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom">
              <div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);">Diluted weighted-average common shares outstanding</div>
            </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">8,500,354</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">
              <div style="color: rgb(0, 0, 0);">8,350,166</div>
            </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">Basic earnings per share <br/>
            </td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">$</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">0.06</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">$</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">0.08</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom">Diluted earnings per share <br/>
            </td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">$</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">0.06</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">$</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom">0.08</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>28
<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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538842291648">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Basis of Presentation (Details)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th">
<div>Mar. 31, 2024 </div>
<div>Segment </div>
<div>Store</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_tlfa_BusinessDescriptionAbstract', window );"><strong>Description of Business [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NumberOfStores', window );">Number of stores</a></td>
<td class="nump">102<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NumberOfOperatingSegments', window );">Number of operating segments | Segment</a></td>
<td class="nump">1<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NumberOfReportableSegments', window );">Number of reporting segments | Segment</a></td>
<td class="nump">1<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_US', window );">United States [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tlfa_BusinessDescriptionAbstract', window );"><strong>Description of Business [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NumberOfStores', window );">Number of stores</a></td>
<td class="nump">91<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_CA', window );">Canada [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tlfa_BusinessDescriptionAbstract', window );"><strong>Description of Business [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NumberOfStores', window );">Number of stores</a></td>
<td class="nump">10<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_ES', window );">Spain [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tlfa_BusinessDescriptionAbstract', window );"><strong>Description of Business [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NumberOfStores', window );">Number of stores</a></td>
<td class="nump">1<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tlfa_BusinessDescriptionAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tlfa_BusinessDescriptionAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tlfa_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NumberOfOperatingSegments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of operating segments. An operating segment is a component of an enterprise: (a) that engages in business activities from which it may earn revenues and incur expenses (including revenues and expenses relating to transactions with other components of the same enterprise), (b) whose operating results are regularly reviewed by the enterprise's chief operating decision maker to make decisions about resources to be allocated to the segment and assess its performance, and (c) for which discrete financial information is available. An operating segment may engage in business activities for which it has yet to earn revenues, for example, start-up operations may be operating segments before earning revenues.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-18<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NumberOfOperatingSegments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NumberOfReportableSegments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-18<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NumberOfReportableSegments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NumberOfStores">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Represents the number of stores.</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_NumberOfStores</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=country_US">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=country_US</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=country_CA">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=country_CA</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=country_ES">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=country_ES</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>29
<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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538840782768">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Revenue Recognition and Discounts (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2024</div></th>
<th class="th"><div>Mar. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerAbstract', window );"><strong>Revenue Recognition [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss', window );">Sales return allowance</a></td>
<td class="nump">$ 100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 100<span></span>
</td>
<td class="nump">$ 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_tlfa_InventoryMerchandiseExpectedToBeReturned', window );">Estimate of merchandise expected to be returned</a></td>
<td class="nump">$ 100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">100<span></span>
</td>
<td class="nump">100<span></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_tlfa_GiftCardRedemptionPeriod', window );">Gift card redemption period</a></td>
<td class="text">1 year<span></span>
</td>
<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_ContractWithCustomerLiabilityRevenueRecognized', window );">Revenue recognized from change in deferred obligation balance</a></td>
<td class="nump">$ 200<span></span>
</td>
<td class="nump">$ 200<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_DeferredRevenueRevenueRecognized1', window );">Deferred revenue, recognized</a></td>
<td class="nump">100<span></span>
</td>
<td class="nump">200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregated Revenue [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Sales</a></td>
<td class="nump">19,275<span></span>
</td>
<td class="nump">20,360<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BalanceSheetLocationAxis=us-gaap_AccountsPayableAndAccruedLiabilitiesMember', window );">Accrued Expenses and Other Liabilities [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerAbstract', window );"><strong>Revenue Recognition [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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="nump">200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 300<span></span>
</td>
<td class="nump">$ 300<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_US', window );">United States [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregated Revenue [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Sales</a></td>
<td class="nump">17,085<span></span>
</td>
<td class="nump">18,099<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_StatementGeographicalAxis=country_CA', window );">Canada [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregated Revenue [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Sales</a></td>
<td class="nump">1,897<span></span>
</td>
<td class="nump">1,907<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_StatementGeographicalAxis=tlfa_OtherCountriesMember', window );">Other [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_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregated Revenue [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Sales</a></td>
<td class="nump">$ 293<span></span>
</td>
<td class="nump">$ 354<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum [Member] | All Other Countries [Member] | Geographic Concentration Risk [Member] | Sales [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregated Revenue [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Revenue percentage</a></td>
<td class="nump">2.00%<span></span>
</td>
<td class="nump">2.00%<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_tlfa_GiftCardRedemptionPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Expected customer gift card redemption period, in PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tlfa_GiftCardRedemptionPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tlfa_</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_tlfa_InventoryMerchandiseExpectedToBeReturned">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 merchandise or supplies to which the entity expected returns as of balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tlfa_InventoryMerchandiseExpectedToBeReturned</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tlfa_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ConcentrationRiskPercentage1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the "benchmark" (or denominator) in the equation, this concept represents the concentration percentage derived from the division.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-42<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-21<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-20<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-18<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<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_ConcentrationRiskPercentage1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 for right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -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 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 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 4: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</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 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<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 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_ContractWithCustomerLiabilityRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityRevenueRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredRevenueRevenueRecognized1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized that was previously reported as deferred or unearned revenue.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredRevenueRevenueRecognized1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DisaggregationOfRevenueAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -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 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-5<br><br>Reference 3: http://www.xbrl.org/2003/role/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 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 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 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 (b)<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 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 8: 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 9: 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 (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 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 11: 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_BalanceSheetLocationAxis=us-gaap_AccountsPayableAndAccruedLiabilitiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BalanceSheetLocationAxis=us-gaap_AccountsPayableAndAccruedLiabilitiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=country_US">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=country_US</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=country_CA">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=country_CA</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=tlfa_OtherCountriesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=tlfa_OtherCountriesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=tlfa_AllOtherCountriesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=tlfa_AllOtherCountriesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_GeographicConcentrationRiskMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByTypeAxis=us-gaap_GeographicConcentrationRiskMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>30
<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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538936067552">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Discounts (Details)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th">
<div>Mar. 31, 2024 </div>
<div>Discount</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_tlfa_DiscountsAbstract', window );"><strong>Discounts [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tlfa_NumberOfClassesOfCustomerDiscounts', window );">Number of classes of customer discounts</a></td>
<td class="nump">6<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tlfa_DiscountsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tlfa_DiscountsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tlfa_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tlfa_NumberOfClassesOfCustomerDiscounts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 classes of customer discounts.</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;">tlfa_NumberOfClassesOfCustomerDiscounts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tlfa_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>31
<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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538838110064">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Property and Equipment, Net of Accumulated Depreciation (Details)<br></strong></div></th>
<th class="th"><div>Mar. 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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember', window );">Equipment and Machinery [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNetAbstract', window );"><strong>Property and Equipment, Net of Accumulated Depreciation [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful lives of assets</a></td>
<td class="text">3 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember', window );">Equipment and Machinery [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNetAbstract', window );"><strong>Property and Equipment, Net of Accumulated Depreciation [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful lives of assets</a></td>
<td class="text">10 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember', window );">Furniture and Fixtures [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNetAbstract', window );"><strong>Property and Equipment, Net of Accumulated Depreciation [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful lives of assets</a></td>
<td class="text">7 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember', window );">Furniture and Fixtures [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNetAbstract', window );"><strong>Property and Equipment, Net of Accumulated Depreciation [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful lives of assets</a></td>
<td class="text">15 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_VehiclesMember', window );">Vehicles [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNetAbstract', window );"><strong>Property and Equipment, Net of Accumulated Depreciation [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful lives of assets</a></td>
<td class="text">5 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingAndBuildingImprovementsMember', window );">Buildings and Related Improvements [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNetAbstract', window );"><strong>Property and Equipment, Net of Accumulated Depreciation [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful lives of assets</a></td>
<td class="text">40 years<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_PropertyPlantAndEquipmentNetAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentNetAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_VehiclesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_VehiclesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_BuildingAndBuildingImprovementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BuildingAndBuildingImprovementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>32
<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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538848605472">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Inventory (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Mar. 31, 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_us-gaap_InventoryNetAbstract', window );"><strong>Inventory on hand [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryFinishedGoods', window );">Finished goods held for sale</a></td>
<td class="nump">$ 33,625<span></span>
</td>
<td class="nump">$ 33,350<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryWorkInProcessAndRawMaterials', window );">Raw materials and work in process</a></td>
<td class="nump">1,248<span></span>
</td>
<td class="nump">1,774<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherInventoryInTransit', window );">Inventory in transit</a></td>
<td class="nump">1,802<span></span>
</td>
<td class="nump">2,869<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Total inventory</a></td>
<td class="nump">$ 36,675<span></span>
</td>
<td class="nump">$ 37,993<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_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_InventoryNetAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryNetAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryWorkInProcessAndRawMaterials">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 carrying amount as of the balance sheet date of items held by the entity which are partially completed at the time of measurement and unprocessed items that will go through the production process and become part of the final product. Includes supplies used directly or indirectly in the manufacturing or production process. This element may be used when the reporting entity combines work in process and raw materials into an aggregate amount.</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_InventoryWorkInProcessAndRawMaterials</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_OtherInventoryInTransit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 merchandise or supplies to which the entity holds the title but does not hold physical possession because the goods are currently being transported.</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))<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_OtherInventoryInTransit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>33
<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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538846641856">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Fair Value of Financial Instruments (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2024</div></th>
<th class="th"><div>Mar. 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_tlfa_FairValueOfFinancialInstrumentsAbstract', window );"><strong>Fair Value of Financial Instruments [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet', window );">Transfers into (out of) Level 3</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_tlfa_FairValueOfFinancialInstrumentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tlfa_FairValueOfFinancialInstrumentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tlfa_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of transfer of financial instrument classified as an asset into (out of) level 3 of the fair value hierarchy.</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_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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>34
<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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538936242752">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Accounts Receivable and Expected Credit Losses (Details) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th"><div>Mar. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tlfa_AccountsReceivableAndExpectedCreditLossesAbstract', window );"><strong>Accounts Receivable and Expected Credit Losses [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivable', window );">Allowance for expected credit losses</a></td>
<td class="nump">$ 0.1<span></span>
</td>
<td class="nump">$ 0.1<span></span>
</td>
<td class="nump">$ 0.1<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tlfa_AccountsReceivableAndExpectedCreditLossesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tlfa_AccountsReceivableAndExpectedCreditLossesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tlfa_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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/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/2147479440/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(4))<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 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 4: 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><br>Reference 5: 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 6: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>35
<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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538848809424">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Other Intangible Assets (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2024</div></th>
<th class="th"><div>Mar. 31, 2023</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNetAbstract', window );"><strong>Intangible Assets [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AmortizationOfIntangibleAssets', window );">Amortization expenses</a></td>
<td class="nump">$ 10<span></span>
</td>
<td class="nump">$ 10<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear', window );">Amortization expense, 2024</a></td>
<td class="nump">10<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths', window );">Amortization expense, 2025</a></td>
<td class="nump">10<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo', window );">Amortization expense, 2026</a></td>
<td class="nump">10<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree', window );">Amortization expense, 2027</a></td>
<td class="nump">10<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour', window );">Amortization expense, 2028</a></td>
<td class="nump">$ 10<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_IntellectualPropertyMember', window );">Trademarks/Copyrights [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNetAbstract', window );"><strong>Intangible Assets [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife', window );">Weighted average amortization period</a></td>
<td class="text">15 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amortization period of finite-lived intangible assets acquired either individually or as part of a group of assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482665/350-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_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AmortizationOfIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482686/350-30-45-2<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482665/350-30-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in remainder of current fiscal year.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482665/350-30-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482665/350-30-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482665/350-30-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsNetAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsNetAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_IntellectualPropertyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_IntellectualPropertyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>36
<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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538935242400">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>NOTES PAYABLE AND LONG-TERM DEBT (Details) - JP Morgan Chase Bank, N.A. [Member] - USD ($)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2024</div></th>
<th class="th"><div>Jan. 03, 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_us-gaap_DebtInstrumentsAbstract', window );"><strong>Debt Instruments [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity', window );">Line of credit facility, maximum borrowing capacity</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,000,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromLinesOfCredit', window );">Line of credit facility, funds borrowed</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19(b),22(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromLinesOfCredit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow from contractual arrangement with the lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(f))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 2: 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_ProceedsFromLinesOfCredit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityAxis=tlfa_JPMorganChaseBankNAMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_LineOfCreditFacilityAxis=tlfa_JPMorganChaseBankNAMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538935972704">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>INCOME TAX (Details)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2024</div></th>
<th class="th"><div>Mar. 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_us-gaap_IncomeTaxDisclosureAbstract', window );"><strong>INCOME TAX [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateContinuingOperations', window );">Effective tax rate</a></td>
<td class="nump">25.70%<span></span>
</td>
<td class="nump">29.50%<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_EffectiveIncomeTaxRateContinuingOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateContinuingOperations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>38
<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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538843051360">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>STOCK-BASED COMPENSATION, 2013 and 2023 Restricted Stock Plans (Details) - shares<br></strong></div></th>
<th class="th" colspan="3">1 Months Ended</th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2024</div></th>
<th class="th"><div>Oct. 31, 2023</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
<th class="th"><div>Mar. 31, 2024</div></th>
<th class="th"><div>Apr. 30, 2023</div></th>
<th class="th"><div>Jun. 30, 2020</div></th>
<th class="th"><div>Jan. 31, 2013</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=tlfa_TwoThousandAndThirteenRestrictedStockPlanMember', window );">2013 Restricted Stock Plan [Member] | Restricted Stock Units [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract', window );"><strong>Restricted Stock Plan [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance', window );">Number of common shares reserved for issuance (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">800,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_PlanNameAxis=tlfa_TwoThousandAndThirteenRestrictedStockPlanMember', window );">2013 Restricted Stock Plan [Member] | Restricted Stock Units [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract', window );"><strong>Restricted Stock Plan [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance', window );">Number of common shares reserved for issuance (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">300,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=tlfa_TwoThousandAndTwentyThreeRestrictedStockPlanMember', window );">2023 Restricted Stock Plan [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract', window );"><strong>Restricted Stock Plan [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period from grant date</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">4 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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=tlfa_TwoThousandAndTwentyThreeRestrictedStockPlanMember', window );">2023 Restricted Stock Plan [Member] | Restricted Stock Units [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract', window );"><strong>Restricted Stock Plan [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period from grant date</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Number of restricted stock units granted (in shares)</a></td>
<td class="nump">59,649<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=tlfa_TwoThousandAndTwentyThreeRestrictedStockPlanMember', window );">2023 Restricted Stock Plan [Member] | Restricted Stock Units [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract', window );"><strong>Restricted Stock Plan [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance', window );">Number of common shares reserved for issuance (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">800,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=tlfa_TwoThousandAndTwentyThreeRestrictedStockPlanMember', window );">2023 Restricted Stock Plan [Member] | Service-Based Restricted Stock Units [Member] | Non-Employee Directors [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract', window );"><strong>Restricted Stock Plan [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period from grant date</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">4 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Number of restricted stock units granted (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,993<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=tlfa_TwoThousandAndTwentyThreeRestrictedStockPlanMember', window );">2023 Restricted Stock Plan [Member] | Service-Based Restricted Stock Units [Member] | Chief Executive Officer [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract', window );"><strong>Restricted Stock Plan [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period from grant date</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Number of restricted stock units granted (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">276,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 number of common shares reserved for future issuance.</p></div>
<a href="javascript: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 210<br> -SubTopic 10<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_CommonStockCapitalSharesReservedForFutureIssuance</td>
</tr>
<tr>
<td style="padding-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_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PlanNameAxis=tlfa_TwoThousandAndThirteenRestrictedStockPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tlfa_TwoThousandAndThirteenRestrictedStockPlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PlanNameAxis=tlfa_TwoThousandAndTwentyThreeRestrictedStockPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tlfa_TwoThousandAndTwentyThreeRestrictedStockPlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=tlfa_ServicedBasedRestrictedStockUnitsRSUsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=tlfa_ServicedBasedRestrictedStockUnitsRSUsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_TitleOfIndividualAxis=srt_DirectorMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_TitleOfIndividualAxis=srt_DirectorMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_TitleOfIndividualAxis=srt_ChiefExecutiveOfficerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_TitleOfIndividualAxis=srt_ChiefExecutiveOfficerMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>39
<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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538842403840">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>STOCK-BASED COMPENSATION, Summary of Activity for Non-vested Restricted Stock Unit Awards (Details) - Restricted Stock and RSU [Member]<br> shares in Thousands</strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th">
<div>Mar. 31, 2024 </div>
<div>$ / shares </div>
<div>shares</div>
</th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward', window );"><strong>Shares [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Balance (in shares) | shares</a></td>
<td class="nump">623<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Granted (in shares) | shares</a></td>
<td class="nump">60<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod', window );">Forfeited (in shares) | shares</a></td>
<td class="num">(6)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Vested (in shares) | shares</a></td>
<td class="num">(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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Balance (in shares) | shares</a></td>
<td class="nump">674<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward', window );"><strong>Weighted Average Share Price [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Balance (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 4.37<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Granted (in dollars per share) | $ / shares</a></td>
<td class="nump">4.47<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue', window );">Forfeited (in dollars per share) | $ / shares</a></td>
<td class="nump">5<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue', window );">Vested (in dollars per share) | $ / shares</a></td>
<td class="nump">3.85<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Balance (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 4.4<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=tlfa_RestrictedStockAndRestrictedStockUnitsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=tlfa_RestrictedStockAndRestrictedStockUnitsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538840638336">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>STOCK-BASED COMPENSATION, Non-vested Service-based Restricted Stock Unit Awards (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2024</div></th>
<th class="th"><div>Mar. 31, 2023</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=tlfa_ServicedBasedRestrictedStockUnitsRSUsMember', window );">Service-Based Restricted Stock Units [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationAbstract', window );"><strong>Share-based Compensation Expense [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">$ 200<span></span>
</td>
<td class="nump">$ 200<span></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_tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear', window );">2024</a></td>
<td class="nump">475<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_tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths', window );">2025</a></td>
<td class="nump">548<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_tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears', window );">2026</a></td>
<td class="nump">403<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_tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears', window );">2027</a></td>
<td class="nump">21<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized', window );">Unrecognized Expense</a></td>
<td class="nump">1,447<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=tlfa_PerformanceBasedRestrictedStockUnitsRSUsMember', window );">Performance-Based Restricted Stock Units [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationAbstract', window );"><strong>Share-based Compensation Expense [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=tlfa_RestrictedStockAndRestrictedStockUnitsMember', window );">Restricted Stock and RSU [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_ShareBasedCompensationAbstract', window );"><strong>Share-based Compensation Expense [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross', window );">Number of shares issued from vesting of restricted stock (in shares)</a></td>
<td class="nump">2,727<span></span>
</td>
<td class="nump">17,518<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Unrecognized cost of unvested share-based compensation awards in excess of one year due in the third fiscal year following the 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;">tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tlfa_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Unrecognized cost of unvested share-based compensation awards due in excess of one year due in the second fiscal year following the 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;">tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tlfa_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Unrecognized cost of unvested share-based compensation awards in excess of one year due in the next fiscal year following the 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;">tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tlfa_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Unrecognized cost of unvested share-based compensation awards due during the remainder of the 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;">tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tlfa_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AllocatedShareBasedCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.F)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479830/718-10-S99-1<br><br>Reference 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 (h)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllocatedShareBasedCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cost not yet recognized for nonvested award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_AwardTypeAxis=tlfa_ServicedBasedRestrictedStockUnitsRSUsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=tlfa_ServicedBasedRestrictedStockUnitsRSUsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=tlfa_PerformanceBasedRestrictedStockUnitsRSUsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=tlfa_PerformanceBasedRestrictedStockUnitsRSUsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=tlfa_RestrictedStockAndRestrictedStockUnitsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=tlfa_RestrictedStockAndRestrictedStockUnitsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538842262720">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>EARNINGS PER SHARE (Details) - USD ($)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2024</div></th>
<th class="th"><div>Mar. 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_us-gaap_NetIncomeLossAbstract', window );"><strong>Numerator [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 525<span></span>
</td>
<td class="nump">$ 664<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract', window );"><strong>Denominator [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic weighted-average common shares outstanding (in shares)</a></td>
<td class="nump">8,400,354<span></span>
</td>
<td class="nump">8,303,117<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted weighted-average common shares outstanding (in shares)</a></td>
<td class="nump">8,500,354<span></span>
</td>
<td class="nump">8,350,166<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic earnings per share (in dollars per share)</a></td>
<td class="nump">$ 0.06<span></span>
</td>
<td class="nump">$ 0.08<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted earnings per share (in dollars per share)</a></td>
<td class="nump">$ 0.06<span></span>
</td>
<td class="nump">$ 0.08<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockMember', window );">Restricted Stock [Member] | Board of Directors [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_WeightedAverageNumberOfSharesOutstandingAbstract', window );"><strong>Denominator [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements', window );">Dilutive effect of service-based restricted stock awards granted under the Plans (in shares)</a></td>
<td class="nump">5,108<span></span>
</td>
<td class="nump">47,050<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockMember', window );">Restricted Stock [Member] | Employees [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_WeightedAverageNumberOfSharesOutstandingAbstract', window );"><strong>Denominator [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements', window );">Dilutive effect of service-based restricted stock awards granted under the Plans (in shares)</a></td>
<td class="nump">94,892<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_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 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 2: 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 3: 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 4: 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 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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 14: 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/2147483589/942-220-S99-1<br><br>Reference 15: 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/2147483586/944-220-S99-1<br><br>Reference 16: 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 17: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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 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 2: 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 3: 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 4: 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 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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/2147483589/942-220-S99-1<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(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<br><br>Reference 15: 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 16: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480454/718-10-45-1<br><br>Reference 2: 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 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-22<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 23<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-23<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28A<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-28A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/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 2: 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 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 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 5: 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 6: 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 7: 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 8: 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 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 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 11: 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 12: 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 13: 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/2147480167/946-830-55-10<br><br>Reference 14: 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/2147483581/946-220-45-7<br><br>Reference 15: 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/2147483586/944-220-S99-1<br><br>Reference 16: 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 17: 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/2147483575/946-220-S99-1<br><br>Reference 18: 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/2147483575/946-220-S99-3<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)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 20: 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 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)(iii)(A))<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)(iv))<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)(5))<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 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 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)(A))<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)(B))<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)(iv))<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)(5))<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 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 30: 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 31: 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 32: 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 33: 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 34: 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 35: 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 36: 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 37: 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 38: 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 39: 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/2147483589/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLossAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLossAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 16<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-16<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_TitleOfIndividualAxis=srt_DirectorMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_TitleOfIndividualAxis=srt_DirectorMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_TitleOfIndividualAxis=us-gaap_ShareBasedPaymentArrangementEmployeeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_TitleOfIndividualAxis=us-gaap_ShareBasedPaymentArrangementEmployeeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.24.1.1.u2</span><table class="report" border="0" cellspacing="2" id="idm140538838130592">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>SHARE REPURCHASE PROGRAM AND SHARE REPURCHASES (Details) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th"><div>Mar. 31, 2024</div></th>
<th class="th"><div>Aug. 08, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tlfa_StockRepurchaseProgramAbstract', window );"><strong>Share Repurchase Program and Share Repurchases [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1', window );">Remaining repurchase of common stock</a></td>
<td class="nump">$ 5.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_RangeAxis=srt_MaximumMember', window );">Maximum [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_tlfa_StockRepurchaseProgramAbstract', window );"><strong>Share Repurchase Program and Share Repurchases [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchaseProgramAuthorizedAmount1', window );">Repurchase of common stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5.0<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tlfa_StockRepurchaseProgramAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tlfa_StockRepurchaseProgramAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tlfa_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRepurchaseProgramAuthorizedAmount1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of stock repurchase plan authorized.</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_StockRepurchaseProgramAuthorizedAmount1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount remaining of a stock repurchase plan authorized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EXCEL
<SEQUENCE>43
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
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
M4FH0A-(D"@\[K8RZACVRJ)D8LMVNUEW)_%XXK%M[^>1=94O6XCN89\V"9X$
M[, \%OJ&K!E"@+968*$D=FGAIL1H(S$BZ)2V@3UAD55EHH%4X!7OS:J5N7<%
M#[V=0^>PTJ2#]^?GGZ,.V*!MW6+$4LT2D;86%,AP"OI@0K!X86M$E(YQ%GL
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
MMG5+_K@PX*^A 7A//S2)7VB#])OI5_\/4$L#!!0    ( +. JE@&?)I^10,
M #@'   8    >&PO=V]R:W-H965T<R]S:&5E=#@N>&ULG57;;MLX$'W/5PS4
M1;$+>"U9=MH@L0W(CO=2-(F1I%T4Q3[0XD@B0I$J2<7-W^^0LK5.D;I 'RSS
M,G/F'%X.IUMM'FR%Z.!K+96=195SS7D<V[S"FMFA;E#13*%-S1QU31G;QB#C
M(:F6<9HD;^*:"17-IV%L;>93W3HI%*X-V+:NF7E:H-3;632*]@.WHJR<'XCG
MTX:5>(?N0[,VU(M[%"YJ5%9H!0:+692-SA<3'Q\"/@K<VH,V>"4;K1]\YV\^
MBQ)/""7FSB,P^GO$)4KI@8C&EQUFU)?TB8?M/?H?03MIV3"+2RW_$=Q5L^@L
M HX%:Z6[U=N_<*?GU./E6MKPA6T7.YE$D+?6Z7J73 QJH;I_]G6W#@<)9\EW
M$M)=0AIX=X4"RTOFV'QJ]!:,CR8TWPA20S:1$\IORITS-"LHS\VO;^Y7=[#.
M/F6+]RO(KB_A_<WUG[_?KVZOX'*UN)_&CJKXV#C?(2XZQ/0[B&.XTLI5%E:*
M(W^>'Q.[GF*ZI[A(CP)>,3.$\6@ :9).CN"->\GC@#?^2<GP.=M89^B\_/N2
M^@Y\\C*XOT/GMF$YSB*Z)!;-(T;SUZ]&;Y*+(]0G/?7),?2?VJWCB.D0?K@>
M-PK>,=72G85QV 7ZN@IAJ>N&J2= Y= @/Q'*:6"04ULX8*5!I.OKX%<?_/K5
M69HF%\MN,MM/AN'1Q6]T[%T%[]97Y"],P;*BFP8+IAX&<#W,AO"!#I/IJGZ#
MT''94"AA2 F-T8^"XS.&/:F"Y4(*]P2Z@+8!XOO+Z2!)$O\#,@GKF.+,<"!%
MM07J0*X599*#V $(E<N6"U4"*PKA38$L)40I++M.KA]1,>4L6+)4<DV2)=2+
MS(>0^:B\-9X1A8:H;Y@^7VI:%F@D\A(Y4)-NOV1$E4G(T3CR8"],.'O"+)5_
MQO@ QB_ZZ.T%Y3,;V'%LM/5[EN>Z55T>R7":MMRKPR^M:'K*5,*#<:K<M86%
M@LBJ<@!*0]$J;HDIAPVB.MEH0Z><^+:[+?31.W'#E^Y$?.!F-9HR>+;72LPZ
M8^M'^V<AZ]SP__#N32'K*(6R(+&@U&3X]C0"T_ETUW&Z"=ZXT8Z<-C0K>MK0
M^ ":+[1V^XXOT#^6\_\ 4$L#!!0    ( +. JEBO(V5<R0(  !@&   8
M>&PO=V]R:W-H965T<R]S:&5E=#DN>&ULA57!;MLP#+WO*P@/W:FP$R=INRX)
MD'0=UD/7HEVW <,.BDW'6F7)H^0F^?M1<N)E0)M>8I'B>WR41&:\,O1H2T0'
MZTII.XE*Y^KS)+%9B96PL:E1\TYAJ!*.35HFMB84>0!5*DE[O9.D$E)'TW'P
MW=)T;!JGI,9; MM4E:#-')593:)^M'/<R67IO".9CFNQQ'MT#_4ML95T++FL
M4%MI-! 6DVC6/Y\/?7P(^"9Q9??6X"M9&//HC:M\$O6\(%28.<\@^/.$%ZB4
M)V(9?[:<49?2 _?7._9/H7:N92$L7ACU7>:NG$1G$>18B$:Y.[/ZC-MZ1IXO
M,\J&7UBUL6D:0=989ZHMF!544K=?L=Z>PQ[@K/<"(-T"TJ"[3114?A1.3,=D
M5D ^FMG\(I0:T"Q.:G\I]XYX5S+.3:^^7-Q<7\+7V8]QXIC/>Y-LBYVWV/0%
M[ "NC7:EA4N=8_X_/F$=G9AT)V:>'B2\%A3#H'\,:2\='N ;=,4- M_@U>+@
MYVQA'?$;^/5<G2W-\'D:WQ?GMA893B)^^!;I":/IN[?]D]Z' R*'G<CA(?97
M;N P=A##7HTW#0$6!8:'#DZL@81#X,X%5[*C)$2HVBM#?V7 !YZ5W8F#T+E?
M#& E+*2C^/2H=;V/1T?'W(*V;KG5)GXI62[91Q8*,E7(6F".)!18)USC#&U"
MW)N:) \!J3:0-PPW\!#?QR$(0>K,5"TGKGGZ6#S>+2QS"@>"$+3Q)32<?Z&V
M13*@;J@V''<<DF>ET$M/"(;E/@G5B'86*!Y&0F<(PEJ32<Z:<^.Y,L1Q4R,1
M>SPA!Z!C.G\0;7'(..LY=T4'@P7P!-#PNR%I<QEFCHV?>Q_)7K=62,LPDRQD
MIM&N;=S.VXV]6=OM_\+;F<GWMY3:@L*"H;WX=!0!M7.H-9RI0^\OC.-)$I8E
MCVXD'\#[A3%N9_@$W9_!]"]02P,$%     @ LX"J6$,U(INR!P  ]Q,  !D
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
MG QOP/>EUJYY80/M;WVG_P!02P,$%     @ LX"J6*$']9L?!   IPD  !D
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
M&8#1K-<JEAH7BB58$U+8X0+!>6&1JH?,U9YDOH)E3>**")3-0;J,CV#JP*)
MWXI9)]TB*^3!,Z,G$;?!3"O0(.!C)=4-[*!0&X&\D4#Q)\YU*5?!(&9$#U:B
M;;.P7CG2T:/S.TWAD_N2*A;I-NW,$8LM(B<8EO0:S45,0P*=J5N"%61&Z9*.
MP*B&:LW;3"3."X4-S"BJ<@@AE^#5DI"I<"A9[3WFG9=>1OJLFDOTZ]BS*!R<
MY;:P]ZO[MGC>=H,_X6U/E>I9:TM@<"70;N?#^P1\VZ?:";LJ]H:E8^DT<5A(
M:T<? F1_Y1SO)D%@_V<Q_@U02P,$%     @ LX"J6*7CFKZC @  '@8  !D
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
M$&RE=!U?$M$I*, 7I?2*P2]VJKUR'&<C#YJ=!N"5)0RP696\F#!&98,7JJQ
M\R/H"RI(H@I\5,%?T7L/0N:K3 O/]:PFQZ!"'<*RH\":V5A:J#Y .W:SU+(
M2[U6+K=U35+/#)FT@O*^&F]H/!=L7Q/#S@!Q5&Y7P)S%@#G;Z?6^4<"NH01N
MBYP?I*%V-6'GD;/SG501!:!+X 8&H_YN21J(S08J=U,T.2>SU*"_H!+T2"OP
MCVSD\YRCDK5#W-%1.Q8YVLG'%6(&@5FMMPXU=J[=WK9'@H(_YA"BRBF>[FAT
M)8D@O(&J5K!WI09N7("\RF8^3LC-GV3[P+ %R@GPBZ66[HD9SH<"(W.CZ4TN
M)4AO%$<. ("=6!:I664+A="I] &ZHARJ?>+;S"^_^:9Q'Y +26*?JB]V\QPM
M$#JEB4D'80Y4F0H]JE/ IQ1QBC02>$(DK0[P'KDDDR'0%[ RF13!O5SF&:%3
M2Q3ND+[\AF)QLV1$HKXU6A95]&=9,X#D#&(5#2"1]X'6H/$%Y?70HG=YVN?7
M(1%$"FDMM/9=X1((5R/@2VX(4O@A/ [6\FU24W6,Y;,)I(0$5):X8:S88X%S
M\NQ/9IZ7(I>W&=;;-N*&;0OH^XY?E'<VOT,^FB 1A>XM ,0_FG3.:5> 'R&O
MRJNF^@K23"]TNMH!0TBY<)+(*(T-D&*ITIIR:H+^7-LF.KS=Y*G/N_0<__$3
M)JX[>A0ZXA@DK'11E)BI0Y3NL]!_H,")$[0R+AMJ0%WLOHLBD\D&>WZA4ZX]
M7X8W0Z3K/"?'IC:T2L5_\@SO^]$,JD>Y)G\>G;YPE ZM:T #;\TVASZS'"[B
M)1BJ7SBFW");+J7[;4)YB5)T.+:K4A NWEHMC'A=E;FO)%AN'5.:B9;Q2M1)
M<'M"X-'"3BT7:T=##+A;K, :/1]_DS85IW::>\ I*ZIRI"=TOIWW80!JV0Z
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
MS1/1#+38VK:\$AJ;O#4+?%5!&@=<7PNA#P.3H'VG9_\#4$L#!!0    ( +.
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
M>G_X]BR[G4B6F_/CG$EU&C7#M3K_ ]</J/M+QN331!])R_\H]'X!4$L#!!0
M   ( +. JEB*('^_U (  "T'   9    >&PO=V]R:W-H965T<R]S:&5E=#(R
M+GAM;*V546^;,!2%_\H5JZ9.Z@J!A*1=@D1)TR%M) KI]C#MP0$G6#4XLYVD
M_?>S@=(TI=$>]I+8<,_A.[:Y#/>,/X@,8PF/.2W$R,BDW%R;ID@RG"-QR3:X
M4'=6C.=(JBE?FV+#,4I+44Y-V[)<,T>D,+QA>6W&O2';2DH*/.,@MGF.^-,-
MIFP_,CK&\X4Y66=27S"]X0:M<8SE_6;&U<QL7%*2XT(05@#'JY'A=ZX#5]>7
M!3\(WHN#,>@D2\8>]"1,1X:E@3#%B=0.2/WM<( IU48*XT_M:32/U,+#\;/[
MI,RNLBR1P &C/TDJLY$Q,"#%*[2E<L[V7W&=IZ?]$D9%^0O[NM8R(-D*R?):
MK AR4E3_Z+%>AP-!I_N.P*X%]K\*G%K@E$$KLC+6&$GD#3G; ]?5RDT/RK4I
MU2H-*?0NQI*KNT3II'?CQV$,TPG,YK?Q;;3P%^$T C\:0W [7_AA!'%X%X63
M,/"C!?A!,+V/%F%T![/IMS (;^,+"(L=+B3C3W ^QA(1*C[!9[B/QW!^]@G.
M@!2PR-A6H"(50U,J:/UH,ZD!;RI ^QW [XA?@M.Y -NRNRWRX+1\C)-&[KR6
MFVJIFO6RF_6R2S_G';^7L.H,9BH2_/*70G)U''^WA:O<NNUN^A6]%AN4X)&A
MWD&!^0X;WL</'=?ZTA;U/YF]"NXTP9U3[MZ$%$0=LQ36C*4",DQ34$T$!**X
M+7CEYI9NNI7L/,=Q[=[0W!TF:JMR>E93]0JUVZ!V3Z+.T5Z](A)S@J@ O4>Z
ME>ASN.$LP:+U%%:6O0.2CMT='.&V%/7[W7;:7D/;.TG[<J(4H#I(JD'*-L#>
MVV</+/L(\&V1/7"OV@'=!M ]";A@$E$%5V.VL;EOM]%U^\>;W5+5O[IRCNC,
M@V:F/R2J :Q)(8#BE=)9EWV5CE?-N9I(MBG[VY))U2W+8::^9YCK G5_Q9A\
MGNB6V7PAO;]02P,$%     @ LX"J6!4RB=>/ @  _ 4  !D   !X;"]W;W)K
M<VAE971S+W-H965T,C,N>&ULK531;MHP%/V5JVR:6JEK0L*ZJ8-((4 ;J0V(
MT.YAVH,)%[#JV,PVT/W]["1DM**H#WM)?&V?DW.NX]/9"?FD5H@:G@O&5==9
M:;V^=EV5K[ @ZE*LD9N5A9 %T::42U>M)9)Y"2J8ZWO>E5L0RIVP4\Z-9=@1
M&\THQ[$$M2D*(O_TD(E=UVDY^XD)7:ZTG7##SIHL,4/]L!Y+4[D-RYP6R!45
M'"0NND[4NH[;=G^YX9'B3AV,P3J9"?%DBV3>=3PK"!GFVC(0\]IBC(Q9(B/C
M=\WI-)^TP,/QGGU8>C=>9D1A+-@/.M>KKO/-@3DNR(;IB=C=8NWGB^7+!5/E
M$W;U7L^!?*.T*&JP45!07KW)<]V' X#A.0[P:X#_&M!^ Q#4@* T6BDK;?6)
M)F%'BAU(N]NPV4'9FQ)MW%!N3S'3TJQ2@]-A+\J2#$9#&$\&V2"=1M-DE$*4
M]B$>3*91DD*6W*3),(FC= I1'(\>TFF2WL!X=)?$R2"[@"&A$AX)VR"(!0PI
M)SRGA$'"E98;<^):P5D?-:%,G<-G>,CZ</;QO.-JH]^J</-::Z_2ZK^A-8![
MP?5*P8#/<?X2[QK?C7E_;[[GGR2\)_(2@M8%^)[?/J(G?C\\."$G:,XB*/F"
M-_C>T\B?T<P4YN?_=:Q_%7_[.+\-A&NU)CEV'7/C%<HM.N&G#ZTK[_LQ\_^)
M[$4KVDTKVJ?8PZDD7"U0*J!<"S@S^6-Z<@YWN$4&P3'O%>%526BS:QMZ'7=[
M:.C4CDJE>W"1"I3+,E\4Y&+#=?5;-;--A$7ES7TUWS/15B71/YHJ%\U/LZ1<
M <.%H?0NOYI@D%765(46Z_*ZSH0VE[\<KDP\H[0;S/I""+TO[ >:P __ E!+
M P04    " "S@*I8]8X[6(4"  !I!@  &0   'AL+W=O<FMS:&5E=',O<VAE
M970R-"YX;6RM55UOFS 4_2M7K)I:J0L$TF[J$B0*:8?4DBBDV\.T!P=N$JL&
M,]OYV+^?#21*I;3+I+Z KWW/L<^Y^-+?</$LEX@*M@4KY<!:*E7=V+;,EE@0
MV>$5EGIESD5!E [%PI:50)+7H(+9KN-<VP6AI>7WZ[FQ\/M\I1@M<2Q KHJ"
MB#^WR/AF8'6MW<2$+I;*3-A^OR(+3%$]56.A(WO/DM,"2TEY"0+G ROHWD2>
MR:\3OE/<R(,Q&"4SSI]-$.<#RS$'0H:9,@Q$O]88(F.&2!_C=\MI[;<TP,/Q
MCOVNUJZUS(C$D+,?-%?+@?7%@ASG9,74A&^^8:OGRO!EG,GZ"9LVU[$@6TG%
MBQ:L3U#0LGF3;>O# :#;>P7@M@#W5(#7 KQ3 ;T6T*N=::34/D1$$;\O^ :$
MR=9L9E";6:.U?%J:LJ=*Z%6J<<J_#=(XA=$=C"?#=)A,@VD\2B!((@B'DVD0
M)Y#&]TE\%X=!,H4@#$=/R31.[F$\>HC#>)A>0I!E?%4J"1/,D*[)C"&0,H?A
MMM+%Q1Q"@3E5\,"E1 GG$2I"F;R 3_"41G!^=@%G0$MXI(SI3T'V;:6%F>/9
M62OBMA'AOB+BD8@.>-U+<!VW=P0>O@V/,-O#O2/PZ'2X^Q)NZVKL2^+N2^+6
M?-XK?/_IY\]@)I70]^?7,>.:K7K'MS(]Y496),.!I9N&1+%&R__XH7OM?#UF
MXWN21>]$]L)B;V^Q]Q:['S#=[DB9(>C&";@S-FN,9;6QQ]QL6+M.36LZZMIW
M.MV^O3YTZ92DZ!])C2K[X%Z;)JR_\P4M)3"<:Y33^7QE@6@:6Q,H7M57?<:5
M;ASU<*G_!2A,@EZ?<ZYV@>D>^[^+_Q=02P,$%     @ LX"J6.*2(H1E P
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
MD#; [!="Z-/$?J!OM^EO4$L#!!0    ( +. JE@4J S)0@8  ,!#   9
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
M_UCQC:1)*'NF0CX:U0SRM4?9VLZ%M5WRS!.UDN0I"2$\]C=11R'&V8L9.;6
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
M8EA=,E50!7D+;@YR(GA.>4USI-YJ4;!<<>1H3 K",XHT2!> =(\(>>]JD!X
MZ1T%,FEPU$\UR#X V3\BY$$D!P#DX)B0G@8Y!""'9B''?A(D*+I!RQ@G.$S]
M-(A"Y(=3-,%QZFN09P#DF5G(,$IQ@I;^#W]\BUNXVRB<G:8X7J I'FN0YP#D
MN5G(()Q$"XQ2_[O&<P'P7)CE2=)H\O54C2]68QDMECA,VL'5%^P>M&+WS/)A
M/PZ#<*;&%<<HF?LQULE EYB62;18!.E"S8:DFPE1F"I2'$X"G.B0D$L<PS)I
M(X9BO/P63^9JD-4$CF:QOVB)D[F."=G$,:P3<'TY6*D=R">.8:' F/I:[4!&
M<0PKY:,YC3ZIC6-#\H8).<4Q+)7W4_L/8/U91X2,XAA6"CS@?1T3<HIC6"HP
MYD#'A%3C&'8-C#G4M]^0<ES#RH$QSW1,R#^N8?_ F.<Z)GB:,6P@&/-"QX0,
MY![10/?M#N@5$S*0>T0#W;?;H5=,R$"N80.!6_$#G[N0@5S#!GK;C*-/4RH)
M*P[4XT+J<0VKYR.)GR"WYW@'=Q60>ES#ZOD8,]F5)=$Q(?6X1SKFG*!0\-,G
M_5(%4H_WWT\[?_UC>I!W/,/> 8\4A_=3D'>\UCOV_F8RIVO&:1ZJ3]0J/R-%
MMJQ0\^C.4/U!LW59[XIBHO(B?BM(OK_HW%_27O\&4$L#!!0    ( +. JEB*
M$X-D8P$  +<3   :    >&PO7W)E;',O=V]R:V)O;VLN>&UL+G)E;'/-V,V.
M@C 4AN%;(;T RSE5U(FXFHW;B3= L("1O]!.1N]^""[P([.8C>E9D99P^B8D
M3PB'+UMG_MJUKKKV+KHW=>M257G??VCM\LHVF5MUO6W'.T4W-)D?ET.I^RR_
M9:75',>)'EYGJ./A=69T?O3V/Q.[HKCF]K/+OQO;^C\&ZY]NN+G*6J^B<S:4
MUJ=*W^MYV^GI0JMQLHI.EU0-IPLI'3J((8C#!QD(,N&#UA"T#A^T@:!-^* $
M@I+P05L(VH8/VD'0+GS0'H+VX8,H1AEC 4D+K 5H3<@U"?":$&P2(#8AV23
M;$*T28#:A&R3 +<)X28!<A/230+L)L2;!.C-J#<+T)M1;Q:@-R\^M@7HS:@W
M"]";46\6H#>CWBQ ;T:]68#>C'JS +T9]68!>C/JS0+T-JBW$:"W0;V- +T-
MZFW>J;?SC]JZN>>YQO/?2;4?G[7S\=/RN;EX+Q/.&O[3'7\!4$L#!!0    (
M +. JEA5*9*/B0$  %X4   3    6T-O;G1E;G1?5'EP97-=+GAM;,V8S6["
M,!"$7R7*%1%CIZ4_ BYMKRV'OH";;(A%$ENVH?#V=<*/U(I&("IU+K$2[\Z,
MO=)WR.1]:\A%F[IJW#0NO3>/C+FLI%JZ1!MJPDZA;2U]>+4+9F2VE MB8C0:
MLTPWGAH_]*U&/)L\4R%7E8]>-N&S4[J9QI8J%T=/N\+6:QI+8RJ521_VV;K)
M?[@,]PY)Z.QJ7*F,&X2"F)UT:'=^-]CWO:W)6I53-)?6O\HZ5+%-Q9S?5N22
M?HD3&751J(QRG:WJT)(X8TGFKB3R=97L1 ?]SC[<,.V>_&K_3J;/,%3.K38N
M3,S2Y7:'D;3=0Q.$R'K5?\2C8Y"^^GS43CNG_$SO<+V?VBZ[>3C6+=??\?<9
M'_4OS"% <J0@.6Y <MR"Y!B#Y+@#R7$/DN,!) <?H01!(2I'02I'82I'@2I'
MH2I'P2I'X2I' 2M'(:M (:M (:M (:M (:M (:M (:M (:M (:M (:M (6N*
M0M84A:SI?Y+U0^OE7__Q:M>DEJHY^+/NM^+L"U!+ 0(4 Q0    ( +. JE@'
M04UB@0   +$    0              "  0    !D;V-0<F]P<R]A<' N>&UL
M4$L! A0#%     @ LX"J6&'D%U[N    *P(  !$              ( !KP
M &1O8U!R;W!S+V-O<F4N>&UL4$L! A0#%     @ LX"J6)E<G",0!@  G"<
M !,              ( !S $  'AL+W1H96UE+W1H96UE,2YX;6Q02P$"% ,4
M    " "S@*I8%#%[P=0%  #='@  &               @($-"   >&PO=V]R
M:W-H965T<R]S:&5E=#$N>&UL4$L! A0#%     @ LX"J6/BT7P8*!P  V1T
M !@              ("!%PX  'AL+W=O<FMS:&5E=',O<VAE970R+GAM;%!+
M 0(4 Q0    ( +. JEA!HP F% ,  )@)   8              " @5<5  !X
M;"]W;W)K<VAE971S+W-H965T,RYX;6Q02P$"% ,4    " "S@*I8U1+Y[,T$
M  !($P  &               @(&A&   >&PO=V]R:W-H965T<R]S:&5E=#0N
M>&UL4$L! A0#%     @ LX"J6!VMBLK?!0  ?!D  !@              ("!
MI!T  'AL+W=O<FMS:&5E=',O<VAE970U+GAM;%!+ 0(4 Q0    ( +. JE@N
MM(FO/08  *TH   8              " @;DC  !X;"]W;W)K<VAE971S+W-H
M965T-BYX;6Q02P$"% ,4    " "S@*I8S. ,5Y,6   _/0  &
M    @($L*@  >&PO=V]R:W-H965T<R]S:&5E=#<N>&UL4$L! A0#%     @
MLX"J6 9\FGY% P  . <  !@              ("!]4   'AL+W=O<FMS:&5E
M=',O<VAE970X+GAM;%!+ 0(4 Q0    ( +. JEBO(V5<R0(  !@&   8
M          " @7!$  !X;"]W;W)K<VAE971S+W-H965T.2YX;6Q02P$"% ,4
M    " "S@*I80S4BF[('  #W$P  &0              @(%O1P  >&PO=V]R
M:W-H965T<R]S:&5E=#$P+GAM;%!+ 0(4 Q0    ( +. JEBA!_6;'P0  *<)
M   9              " @5A/  !X;"]W;W)K<VAE971S+W-H965T,3$N>&UL
M4$L! A0#%     @ LX"J6*W>%HC5 @  . 8  !D              ("!KE,
M 'AL+W=O<FMS:&5E=',O<VAE970Q,BYX;6Q02P$"% ,4    " "S@*I8I>.:
MOJ,"   >!@  &0              @(&Z5@  >&PO=V]R:W-H965T<R]S:&5E
M=#$S+GAM;%!+ 0(4 Q0    ( +. JE@TY6Y99A,  , X   9
M  " @919  !X;"]W;W)K<VAE971S+W-H965T,30N>&UL4$L! A0#%     @
MLX"J6&P;8E_] P  S@@  !D              ("!,6T  'AL+W=O<FMS:&5E
M=',O<VAE970Q-2YX;6Q02P$"% ,4    " "S@*I811ZHI6H#  "S!P  &0
M            @(%E<0  >&PO=V]R:W-H965T<R]S:&5E=#$V+GAM;%!+ 0(4
M Q0    ( +. JEC>FGQJ2 ,  &H'   9              " @09U  !X;"]W
M;W)K<VAE971S+W-H965T,3<N>&UL4$L! A0#%     @ LX"J6'F),=$B P
M90L  !D              ("!A7@  'AL+W=O<FMS:&5E=',O<VAE970Q."YX
M;6Q02P$"% ,4    " "S@*I8G$U\(-D%   X)@  &0              @('>
M>P  >&PO=V]R:W-H965T<R]S:&5E=#$Y+GAM;%!+ 0(4 Q0    ( +. JEB2
MI!4P3@(  -@$   9              " @>Z!  !X;"]W;W)K<VAE971S+W-H
M965T,C N>&UL4$L! A0#%     @ LX"J6/T'(5Y> P  71   !D
M     ("!<X0  'AL+W=O<FMS:&5E=',O<VAE970R,2YX;6Q02P$"% ,4
M" "S@*I8BB!_O]0"   M!P  &0              @($(B   >&PO=V]R:W-H
M965T<R]S:&5E=#(R+GAM;%!+ 0(4 Q0    ( +. JE@5,HG7CP(  /P%   9
M              " @1.+  !X;"]W;W)K<VAE971S+W-H965T,C,N>&UL4$L!
M A0#%     @ LX"J6/6..UB% @  :08  !D              ("!V8T  'AL
M+W=O<FMS:&5E=',O<VAE970R-"YX;6Q02P$"% ,4    " "S@*I8XI(BA&4#
M  #&#0  &0              @(&5D   >&PO=V]R:W-H965T<R]S:&5E=#(U
M+GAM;%!+ 0(4 Q0    ( +. JEBJ$;C:K0(  ,\&   9              "
M@3&4  !X;"]W;W)K<VAE971S+W-H965T,C8N>&UL4$L! A0#%     @ LX"J
M6+-';X8X @  >@4  !D              ("!%9<  'AL+W=O<FMS:&5E=',O
M<VAE970R-RYX;6Q02P$"% ,4    " "S@*I8%*@,R4(&  # 0P  &0
M        @(&$F0  >&PO=V]R:W-H965T<R]S:&5E=#(X+GAM;%!+ 0(4 Q0
M   ( +. JEBA\E9%5 ,  ,X*   9              " @?V?  !X;"]W;W)K
M<VAE971S+W-H965T,CDN>&UL4$L! A0#%     @ LX"J6!Q")IO1 P  A1
M !D              ("!B*,  'AL+W=O<FMS:&5E=',O<VAE970S,"YX;6Q0
M2P$"% ,4    " "S@*I8'3082?$#  "=#P  &0              @(&0IP
M>&PO=V]R:W-H965T<R]S:&5E=#,Q+GAM;%!+ 0(4 Q0    ( +. JE@P;T,I
MD0(  #@(   9              " @;BK  !X;"]W;W)K<VAE971S+W-H965T
M,S(N>&UL4$L! A0#%     @ LX"J6#Z[!V@Z P  [A,   T
M ( !@*X  'AL+W-T>6QE<RYX;6Q02P$"% ,4    " "S@*I8EXJ[',     3
M @  "P              @ 'EL0  7W)E;',O+G)E;'-02P$"% ,4    " "S
M@*I8SXJ5DS\#   H%@  #P              @ '.L@  >&PO=V]R:V)O;VLN
M>&UL4$L! A0#%     @ LX"J6(H3@V1C 0  MQ,  !H              ( !
M.K8  'AL+U]R96QS+W=O<FMB;V]K+GAM;"YR96QS4$L! A0#%     @ LX"J
M6%4IDH^) 0  7A0  !,              ( !U;<  %M#;VYT96YT7U1Y<&5S
;72YX;6Q02P4&     "@ * #/"@  C[D

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>44
<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>45
<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>47
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.24.1.1.u2</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>86</ContextCount>
  <ElementCount>186</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>31</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>7</UnitCount>
  <MyReports>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>000100 - Document - Document and Entity Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/DocumentAndEntityInformation</Role>
      <ShortName>Document and Entity Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>010000 - Statement - Condensed Consolidated Balance Sheets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/CondensedConsolidatedBalanceSheets</Role>
      <ShortName>Condensed Consolidated Balance Sheets</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>010100 - Statement - Condensed Consolidated Balance Sheets (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/CondensedConsolidatedBalanceSheetsParenthetical</Role>
      <ShortName>Condensed Consolidated Balance Sheets (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>020000 - Statement - Condensed Consolidated Statements of Operations and Comprehensive Income</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome</Role>
      <ShortName>Condensed Consolidated Statements of Operations and Comprehensive Income</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>030000 - Statement - Condensed Consolidated Statements of Cash Flows</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows</Role>
      <ShortName>Condensed Consolidated Statements of Cash Flows</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>040000 - Statement - Condensed Consolidated Statements of Stockholders' Equity</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/CondensedConsolidatedStatementsOfStockholdersEquity</Role>
      <ShortName>Condensed Consolidated Statements of Stockholders' Equity</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>060100 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPolicies</Role>
      <ShortName>BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>060200 - Disclosure - NOTES PAYABLE AND LONG-TERM DEBT</LongName>
      <ReportType>Notes</ReportType>
      <Role>http://tandyleather.com/role/NotesPayableAndLongtermDebt</Role>
      <ShortName>NOTES PAYABLE AND LONG-TERM DEBT</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>060300 - Disclosure - INCOME TAX</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/IncomeTax</Role>
      <ShortName>INCOME TAX</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>060400 - Disclosure - STOCK-BASED COMPENSATION</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/StockbasedCompensation</Role>
      <ShortName>STOCK-BASED COMPENSATION</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>060500 - Disclosure - EARNINGS PER SHARE</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/EarningsPerShare</Role>
      <ShortName>EARNINGS PER SHARE</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>060600 - Disclosure - COMMITMENTS AND CONTINGENCIES</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/CommitmentsAndContingencies</Role>
      <ShortName>COMMITMENTS AND CONTINGENCIES</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>060700 - Disclosure - SHARE REPURCHASE PROGRAM AND SHARE REPURCHASES</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/ShareRepurchaseProgramAndShareRepurchases</Role>
      <ShortName>SHARE REPURCHASE PROGRAM AND SHARE REPURCHASES</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>070100 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPolicies</Role>
      <ShortName>BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>080100 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesTables</Role>
      <ShortName>BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPolicies</ParentRole>
      <Position>15</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>080400 - Disclosure - STOCK-BASED COMPENSATION (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/StockbasedCompensationTables</Role>
      <ShortName>STOCK-BASED COMPENSATION (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tandyleather.com/role/StockbasedCompensation</ParentRole>
      <Position>16</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>080500 - Disclosure - EARNINGS PER SHARE (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/EarningsPerShareTables</Role>
      <ShortName>EARNINGS PER SHARE (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tandyleather.com/role/EarningsPerShare</ParentRole>
      <Position>17</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>090100 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Basis of Presentation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesBasisOfPresentationDetails</Role>
      <ShortName>BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Basis of Presentation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>090102 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Revenue Recognition and Discounts (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails</Role>
      <ShortName>BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Revenue Recognition and Discounts (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>090104 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Discounts (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesDiscountsDetails</Role>
      <ShortName>BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Discounts (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesTables</ParentRole>
      <Position>20</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>090106 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Property and Equipment, Net of Accumulated Depreciation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPropertyAndEquipmentNetOfAccumulatedDepreciationDetails</Role>
      <ShortName>BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Property and Equipment, Net of Accumulated Depreciation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>090108 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Inventory (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesInventoryDetails</Role>
      <ShortName>BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Inventory (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesTables</ParentRole>
      <Position>22</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>090110 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Fair Value of Financial Instruments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesFairValueOfFinancialInstrumentsDetails</Role>
      <ShortName>BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Fair Value of Financial Instruments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>23</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>090112 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Accounts Receivable and Expected Credit Losses (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesAccountsReceivableAndExpectedCreditLossesDetails</Role>
      <ShortName>BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Accounts Receivable and Expected Credit Losses (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>24</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>090114 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Other Intangible Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesOtherIntangibleAssetsDetails</Role>
      <ShortName>BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Other Intangible Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>25</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>090200 - Disclosure - NOTES PAYABLE AND LONG-TERM DEBT (Details)</LongName>
      <ReportType>Notes</ReportType>
      <Role>http://tandyleather.com/role/NotesPayableAndLongtermDebtDetails</Role>
      <ShortName>NOTES PAYABLE AND LONG-TERM DEBT (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tandyleather.com/role/NotesPayableAndLongtermDebt</ParentRole>
      <Position>26</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>090300 - Disclosure - INCOME TAX (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/IncomeTaxDetails</Role>
      <ShortName>INCOME TAX (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tandyleather.com/role/IncomeTax</ParentRole>
      <Position>27</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>090400 - Disclosure - STOCK-BASED COMPENSATION, 2013 and 2023 Restricted Stock Plans (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails</Role>
      <ShortName>STOCK-BASED COMPENSATION, 2013 and 2023 Restricted Stock Plans (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>28</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>090402 - Disclosure - STOCK-BASED COMPENSATION, Summary of Activity for Non-vested Restricted Stock Unit Awards (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/StockbasedCompensationSummaryOfActivityForNonvestedRestrictedStockUnitAwardsDetails</Role>
      <ShortName>STOCK-BASED COMPENSATION, Summary of Activity for Non-vested Restricted Stock Unit Awards (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>29</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>090404 - Disclosure - STOCK-BASED COMPENSATION, Non-vested Service-based Restricted Stock Unit Awards (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails</Role>
      <ShortName>STOCK-BASED COMPENSATION, Non-vested Service-based Restricted Stock Unit Awards (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>30</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>090500 - Disclosure - EARNINGS PER SHARE (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/EarningsPerShareDetails</Role>
      <ShortName>EARNINGS PER SHARE (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tandyleather.com/role/EarningsPerShareTables</ParentRole>
      <Position>31</Position>
    </Report>
    <Report instance="ef20026315_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>090700 - Disclosure - SHARE REPURCHASE PROGRAM AND SHARE REPURCHASES (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tandyleather.com/role/ShareRepurchaseProgramAndShareRepurchasesDetails</Role>
      <ShortName>SHARE REPURCHASE PROGRAM AND SHARE REPURCHASES (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tandyleather.com/role/ShareRepurchaseProgramAndShareRepurchases</ParentRole>
      <Position>32</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <Logs>
    <Log type="Warning">[dq-0542-Deprecated-Concept] Concept ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy in us-gaap/2023 used in 1 facts was deprecated in us-gaap/2024 as of 2024 and should not be used. ef20026315_10q.htm 6051</Log>
    <Log type="Warning">[ix-0514-Hidden-Fact-Eligible-For-Transform] WARN: 5 fact(s) appearing in ix:hidden were eligible for transformation: dei:SecurityExchangeName, us-gaap:NumberOfOperatingSegments, us-gaap:NumberOfReportableSegments, us-gaap:PropertyPlantAndEquipmentUsefulLife -  ef20026315_10q.htm 11</Log>
  </Logs>
  <InputFiles>
    <File doctype="10-Q" isDefinitelyFs="true" isUsgaap="true" original="ef20026315_10q.htm">ef20026315_10q.htm</File>
    <File>tlfa-20240331.xsd</File>
    <File>tlfa-20240331_cal.xml</File>
    <File>tlfa-20240331_def.xml</File>
    <File>tlfa-20240331_lab.xml</File>
    <File>tlfa-20240331_pre.xml</File>
  </InputFiles>
  <SupplementalFiles>
    <File>image00001.jpg</File>
  </SupplementalFiles>
  <BaseTaxonomies>
    <BaseTaxonomy items="372">http://fasb.org/us-gaap/2023</BaseTaxonomy>
    <BaseTaxonomy items="29">http://xbrl.sec.gov/dei/2023</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>50
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "version": "2.2",
 "instance": {
  "ef20026315_10q.htm": {
   "nsprefix": "tlfa",
   "nsuri": "http://tandyleather.com/20240331",
   "dts": {
    "inline": {
     "local": [
      "ef20026315_10q.htm"
     ]
    },
    "schema": {
     "local": [
      "tlfa-20240331.xsd"
     ],
     "remote": [
      "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xl-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xlink-2003-12-31.xsd",
      "http://www.xbrl.org/2004/ref-2004-08-10.xsd",
      "http://www.xbrl.org/2005/xbrldt-2005.xsd",
      "http://www.xbrl.org/2006/ref-2006-02-27.xsd",
      "http://www.xbrl.org/lrr/arcrole/factExplanatory-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd",
      "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd",
      "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd",
      "https://www.xbrl.org/dtr/type/2022-03-31/types.xsd",
      "https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd",
      "https://xbrl.fasb.org/srt/2023/elts/srt-roles-2023.xsd",
      "https://xbrl.fasb.org/srt/2023/elts/srt-types-2023.xsd",
      "https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd",
      "https://xbrl.fasb.org/us-gaap/2023/elts/us-roles-2023.xsd",
      "https://xbrl.fasb.org/us-gaap/2023/elts/us-types-2023.xsd",
      "https://xbrl.sec.gov/country/2023/country-2023.xsd",
      "https://xbrl.sec.gov/currency/2023/currency-2023.xsd",
      "https://xbrl.sec.gov/dei/2023/dei-2023.xsd",
      "https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd",
      "https://xbrl.sec.gov/exch/2023/exch-2023.xsd",
      "https://xbrl.sec.gov/naics/2023/naics-2023.xsd",
      "https://xbrl.sec.gov/sic/2023/sic-2023.xsd",
      "https://xbrl.sec.gov/stpr/2023/stpr-2023.xsd"
     ]
    },
    "calculationLink": {
     "local": [
      "tlfa-20240331_cal.xml"
     ]
    },
    "definitionLink": {
     "local": [
      "tlfa-20240331_def.xml"
     ]
    },
    "labelLink": {
     "local": [
      "tlfa-20240331_lab.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "tlfa-20240331_pre.xml"
     ]
    }
   },
   "keyStandard": 177,
   "keyCustom": 9,
   "axisStandard": 12,
   "axisCustom": 0,
   "memberStandard": 23,
   "memberCustom": 8,
   "hidden": {
    "total": 12,
    "http://xbrl.sec.gov/dei/2023": 6,
    "http://fasb.org/us-gaap/2023": 6
   },
   "contextCount": 86,
   "entityCount": 1,
   "segmentCount": 31,
   "elementCount": 301,
   "unitCount": 7,
   "baseTaxonomies": {
    "http://fasb.org/us-gaap/2023": 372,
    "http://xbrl.sec.gov/dei/2023": 29
   },
   "report": {
    "R1": {
     "role": "http://tandyleather.com/role/DocumentAndEntityInformation",
     "longName": "000100 - Document - Document and Entity Information",
     "shortName": "Document and Entity Information",
     "isDefault": "true",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "1",
     "firstAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R2": {
     "role": "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets",
     "longName": "010000 - Statement - Condensed Consolidated Balance Sheets",
     "shortName": "Condensed Consolidated Balance Sheets",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "2",
     "firstAnchor": {
      "contextRef": "c20240331",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240331",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R3": {
     "role": "http://tandyleather.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
     "longName": "010100 - Statement - Condensed Consolidated Balance Sheets (Parenthetical)",
     "shortName": "Condensed Consolidated Balance Sheets (Parenthetical)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "3",
     "firstAnchor": {
      "contextRef": "c20240331",
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240331",
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R4": {
     "role": "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome",
     "longName": "020000 - Statement - Condensed Consolidated Statements of Operations and Comprehensive Income",
     "shortName": "Condensed Consolidated Statements of Operations and Comprehensive Income",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "4",
     "firstAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:CostOfGoodsAndServicesSold",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "unique": true
     }
    },
    "R5": {
     "role": "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows",
     "longName": "030000 - Statement - Condensed Consolidated Statements of Cash Flows",
     "shortName": "Condensed Consolidated Statements of Cash Flows",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "5",
     "firstAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:CostOfGoodsAndServicesSoldDepreciation",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "unique": true
     }
    },
    "R6": {
     "role": "http://tandyleather.com/role/CondensedConsolidatedStatementsOfStockholdersEquity",
     "longName": "040000 - Statement - Condensed Consolidated Statements of Stockholders' Equity",
     "shortName": "Condensed Consolidated Statements of Stockholders' Equity",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "6",
     "firstAnchor": {
      "contextRef": "c20221231_StatementEquityComponentsAxis_CommonStockMember",
      "name": "us-gaap:StockholdersEquity",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20221231_StatementEquityComponentsAxis_CommonStockMember",
      "name": "us-gaap:StockholdersEquity",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R7": {
     "role": "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPolicies",
     "longName": "060100 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES",
     "shortName": "BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "7",
     "firstAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R8": {
     "role": "http://tandyleather.com/role/NotesPayableAndLongtermDebt",
     "longName": "060200 - Disclosure - NOTES PAYABLE AND LONG-TERM DEBT",
     "shortName": "NOTES PAYABLE AND LONG-TERM DEBT",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "8",
     "firstAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R9": {
     "role": "http://tandyleather.com/role/IncomeTax",
     "longName": "060300 - Disclosure - INCOME TAX",
     "shortName": "INCOME TAX",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "9",
     "firstAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R10": {
     "role": "http://tandyleather.com/role/StockbasedCompensation",
     "longName": "060400 - Disclosure - STOCK-BASED COMPENSATION",
     "shortName": "STOCK-BASED COMPENSATION",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "10",
     "firstAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R11": {
     "role": "http://tandyleather.com/role/EarningsPerShare",
     "longName": "060500 - Disclosure - EARNINGS PER SHARE",
     "shortName": "EARNINGS PER SHARE",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "11",
     "firstAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R12": {
     "role": "http://tandyleather.com/role/CommitmentsAndContingencies",
     "longName": "060600 - Disclosure - COMMITMENTS AND CONTINGENCIES",
     "shortName": "COMMITMENTS AND CONTINGENCIES",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "12",
     "firstAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R13": {
     "role": "http://tandyleather.com/role/ShareRepurchaseProgramAndShareRepurchases",
     "longName": "060700 - Disclosure - SHARE REPURCHASE PROGRAM AND SHARE REPURCHASES",
     "shortName": "SHARE REPURCHASE PROGRAM AND SHARE REPURCHASES",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "13",
     "firstAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "tlfa:ShareRepurchaseProgramAndShareRepurchasesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "tlfa:ShareRepurchaseProgramAndShareRepurchasesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R14": {
     "role": "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPolicies",
     "longName": "070100 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES (Policies)",
     "shortName": "BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "14",
     "firstAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:CashAndCashEquivalentsPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:CashAndCashEquivalentsPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R15": {
     "role": "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesTables",
     "longName": "080100 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES (Tables)",
     "shortName": "BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "15",
     "firstAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:DisaggregationOfRevenueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:DisaggregationOfRevenueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R16": {
     "role": "http://tandyleather.com/role/StockbasedCompensationTables",
     "longName": "080400 - Disclosure - STOCK-BASED COMPENSATION (Tables)",
     "shortName": "STOCK-BASED COMPENSATION (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "16",
     "firstAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R17": {
     "role": "http://tandyleather.com/role/EarningsPerShareTables",
     "longName": "080500 - Disclosure - EARNINGS PER SHARE (Tables)",
     "shortName": "EARNINGS PER SHARE (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "17",
     "firstAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R18": {
     "role": "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesBasisOfPresentationDetails",
     "longName": "090100 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Basis of Presentation (Details)",
     "shortName": "BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Basis of Presentation (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "18",
     "firstAnchor": {
      "contextRef": "c20240331",
      "name": "us-gaap:NumberOfStores",
      "unitRef": "U004",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240331",
      "name": "us-gaap:NumberOfStores",
      "unitRef": "U004",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R19": {
     "role": "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails",
     "longName": "090102 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Revenue Recognition and Discounts (Details)",
     "shortName": "BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Revenue Recognition and Discounts (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "19",
     "firstAnchor": {
      "contextRef": "c20240331",
      "name": "us-gaap:ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240331",
      "name": "us-gaap:ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R20": {
     "role": "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesDiscountsDetails",
     "longName": "090104 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Discounts (Details)",
     "shortName": "BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Discounts (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "20",
     "firstAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "tlfa:NumberOfClassesOfCustomerDiscounts",
      "unitRef": "U007",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "span",
       "div",
       "tlfa:RevenueRecognitionDiscountsPolicyTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "tlfa:NumberOfClassesOfCustomerDiscounts",
      "unitRef": "U007",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "span",
       "div",
       "tlfa:RevenueRecognitionDiscountsPolicyTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R21": {
     "role": "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPropertyAndEquipmentNetOfAccumulatedDepreciationDetails",
     "longName": "090106 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Property and Equipment, Net of Accumulated Depreciation (Details)",
     "shortName": "BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Property and Equipment, Net of Accumulated Depreciation (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "21",
     "firstAnchor": {
      "contextRef": "c20240331_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember_RangeAxis_MaximumMember",
      "name": "us-gaap:PropertyPlantAndEquipmentUsefulLife",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:PropertyPlantAndEquipmentPolicyTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240331_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember_RangeAxis_MaximumMember",
      "name": "us-gaap:PropertyPlantAndEquipmentUsefulLife",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:PropertyPlantAndEquipmentPolicyTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R22": {
     "role": "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesInventoryDetails",
     "longName": "090108 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Inventory (Details)",
     "shortName": "BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Inventory (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "22",
     "firstAnchor": {
      "contextRef": "c20240331",
      "name": "us-gaap:InventoryFinishedGoods",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240331",
      "name": "us-gaap:InventoryFinishedGoods",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R23": {
     "role": "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesFairValueOfFinancialInstrumentsDetails",
     "longName": "090110 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Fair Value of Financial Instruments (Details)",
     "shortName": "BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Fair Value of Financial Instruments (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "23",
     "firstAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet",
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet",
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R24": {
     "role": "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesAccountsReceivableAndExpectedCreditLossesDetails",
     "longName": "090112 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Accounts Receivable and Expected Credit Losses (Details)",
     "shortName": "BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Accounts Receivable and Expected Credit Losses (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "24",
     "firstAnchor": {
      "contextRef": "c20240331",
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivable",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "div",
       "us-gaap:ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240331",
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivable",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "div",
       "us-gaap:ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R25": {
     "role": "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesOtherIntangibleAssetsDetails",
     "longName": "090114 - Disclosure - BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Other Intangible Assets (Details)",
     "shortName": "BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES, Other Intangible Assets (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "25",
     "firstAnchor": {
      "contextRef": "c20240101to20240331_RangeAxis_MaximumMember",
      "name": "us-gaap:AmortizationOfIntangibleAssets",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-4",
      "ancestors": [
       "div",
       "us-gaap:IntangibleAssetsFiniteLivedPolicy",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20240331_RangeAxis_MaximumMember",
      "name": "us-gaap:AmortizationOfIntangibleAssets",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-4",
      "ancestors": [
       "div",
       "us-gaap:IntangibleAssetsFiniteLivedPolicy",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R26": {
     "role": "http://tandyleather.com/role/NotesPayableAndLongtermDebtDetails",
     "longName": "090200 - Disclosure - NOTES PAYABLE AND LONG-TERM DEBT (Details)",
     "shortName": "NOTES PAYABLE AND LONG-TERM DEBT (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "26",
     "firstAnchor": {
      "contextRef": "c20230103_LineOfCreditFacilityAxis_JPMorganChaseBankNAMember",
      "name": "us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20230103_LineOfCreditFacilityAxis_JPMorganChaseBankNAMember",
      "name": "us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R27": {
     "role": "http://tandyleather.com/role/IncomeTaxDetails",
     "longName": "090300 - Disclosure - INCOME TAX (Details)",
     "shortName": "INCOME TAX (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "27",
     "firstAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:EffectiveIncomeTaxRateContinuingOperations",
      "unitRef": "U006",
      "xsiNil": "false",
      "lang": null,
      "decimals": "3",
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:EffectiveIncomeTaxRateContinuingOperations",
      "unitRef": "U006",
      "xsiNil": "false",
      "lang": null,
      "decimals": "3",
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R28": {
     "role": "http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails",
     "longName": "090400 - Disclosure - STOCK-BASED COMPENSATION, 2013 and 2023 Restricted Stock Plans (Details)",
     "shortName": "STOCK-BASED COMPENSATION, 2013 and 2023 Restricted Stock Plans (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "28",
     "firstAnchor": {
      "contextRef": "c20200630_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_TwoThousandAndThirteenRestrictedStockPlanMember",
      "name": "us-gaap:CommonStockCapitalSharesReservedForFutureIssuance",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20200630_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_TwoThousandAndThirteenRestrictedStockPlanMember",
      "name": "us-gaap:CommonStockCapitalSharesReservedForFutureIssuance",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R29": {
     "role": "http://tandyleather.com/role/StockbasedCompensationSummaryOfActivityForNonvestedRestrictedStockUnitAwardsDetails",
     "longName": "090402 - Disclosure - STOCK-BASED COMPENSATION, Summary of Activity for Non-vested Restricted Stock Unit Awards (Details)",
     "shortName": "STOCK-BASED COMPENSATION, Summary of Activity for Non-vested Restricted Stock Unit Awards (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "29",
     "firstAnchor": {
      "contextRef": "c20231231_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20231231_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R30": {
     "role": "http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails",
     "longName": "090404 - Disclosure - STOCK-BASED COMPENSATION, Non-vested Service-based Restricted Stock Unit Awards (Details)",
     "shortName": "STOCK-BASED COMPENSATION, Non-vested Service-based Restricted Stock Unit Awards (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "30",
     "firstAnchor": {
      "contextRef": "c20240101to20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember",
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember",
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R31": {
     "role": "http://tandyleather.com/role/EarningsPerShareDetails",
     "longName": "090500 - Disclosure - EARNINGS PER SHARE (Details)",
     "shortName": "EARNINGS PER SHARE (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "31",
     "firstAnchor": {
      "contextRef": "c20240101to20240331",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20240331_AwardTypeAxis_RestrictedStockMember_TitleOfIndividualAxis_DirectorMember",
      "name": "us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "unique": true
     }
    },
    "R32": {
     "role": "http://tandyleather.com/role/ShareRepurchaseProgramAndShareRepurchasesDetails",
     "longName": "090700 - Disclosure - SHARE REPURCHASE PROGRAM AND SHARE REPURCHASES (Details)",
     "shortName": "SHARE REPURCHASE PROGRAM AND SHARE REPURCHASES (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "32",
     "firstAnchor": {
      "contextRef": "c20240331",
      "name": "us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240331",
      "name": "us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20026315_10q.htm",
      "first": true,
      "unique": true
     }
    }
   },
   "tag": {
    "us-gaap_AccountingPoliciesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountingPoliciesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountsPayableAndAccruedLiabilitiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsPayableAndAccruedLiabilitiesMember",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued Expenses and Other Liabilities [Member]",
        "documentation": "Primary financial statement caption encompassing accounts payable and accrued liabilities."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountsPayableTradeCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsPayableTradeCurrent",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts payable-trade",
        "documentation": "Carrying value as of the balance sheet date of obligations 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": [
      "r14",
      "r16"
     ]
    },
    "tlfa_AccountsReceivableAndExpectedCreditLossesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://tandyleather.com/20240331",
     "localname": "AccountsReceivableAndExpectedCreditLossesAbstract",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesAccountsReceivableAndExpectedCreditLossesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts Receivable And Expected Credit Losses [Abstract]",
        "terseLabel": "Accounts Receivable and Expected Credit Losses [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountsReceivableNetCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsReceivableNetCurrent",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts receivable-trade, net of allowance of $31 at March 31, 2024 and December 31, 2023, respectively",
        "documentation": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current."
       }
      }
     },
     "auth_ref": [
      "r190",
      "r191"
     ]
    },
    "us-gaap_AccruedLiabilitiesAndOtherLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccruedLiabilitiesAndOtherLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued expenses and other liabilities",
        "documentation": "Amount of expenses incurred but not yet paid nor invoiced, and liabilities classified as other."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_PropertyPlantAndEquipmentNet",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "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": [
      "r46",
      "r118",
      "r386"
     ]
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accumulated other comprehensive loss, net of tax",
        "documentation": "Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source."
       }
      }
     },
     "auth_ref": [
      "r26",
      "r27",
      "r76",
      "r121",
      "r382",
      "r398",
      "r399"
     ]
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccumulatedOtherComprehensiveIncomeMember",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accumulated Other Comprehensive Income (Loss) [Member]",
        "documentation": "Accumulated increase (decrease) in equity from transactions and other events and circumstances from non-owner sources, attributable to the parent. Excludes net income (loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners."
       }
      }
     },
     "auth_ref": [
      "r3",
      "r10",
      "r27",
      "r341",
      "r344",
      "r364",
      "r394",
      "r395",
      "r532",
      "r533",
      "r534",
      "r540",
      "r541",
      "r542"
     ]
    },
    "us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesOtherIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted average amortization period",
        "documentation": "Weighted average amortization period of finite-lived intangible assets acquired either individually or as part of a group of assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r89"
     ]
    },
    "us-gaap_AdditionalPaidInCapital": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdditionalPaidInCapital",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "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": [
      "r68",
      "r507",
      "r595"
     ]
    },
    "us-gaap_AdditionalPaidInCapitalMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdditionalPaidInCapitalMember",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Paid-in Capital [Member]",
        "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": [
      "r308",
      "r309",
      "r310",
      "r405",
      "r540",
      "r541",
      "r542",
      "r580",
      "r596"
     ]
    },
    "us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustments to reconcile net income to net cash provided by operating activities:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue",
     "crdr": "credit",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-based compensation expense",
        "label": "APIC, Share-Based Payment Arrangement, Increase for Cost Recognition",
        "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r53",
      "r54",
      "r270"
     ]
    },
    "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total adjustments",
        "label": "Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities",
        "documentation": "The sum of adjustments which are added to or deducted from net income or loss, including the portion attributable to noncontrolling interest, to reflect cash provided by or used in operating activities, in accordance with the indirect cash flow method."
       }
      }
     },
     "auth_ref": [
      "r86"
     ]
    },
    "tlfa_AllOtherCountriesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tandyleather.com/20240331",
     "localname": "AllOtherCountriesMember",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "All other countries excluding the United States and Canada.",
        "label": "All Other Countries [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AllocatedShareBasedCompensationExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AllocatedShareBasedCompensationExpense",
     "crdr": "debit",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-based compensation expense",
        "label": "Share-Based Payment Arrangement, Expense",
        "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized."
       }
      }
     },
     "auth_ref": [
      "r303",
      "r315"
     ]
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AllowanceForDoubtfulAccountsReceivable",
     "crdr": "credit",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesAccountsReceivableAndExpectedCreditLossesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Allowance for expected credit losses",
        "documentation": "Amount of allowance for credit loss on accounts receivable."
       }
      }
     },
     "auth_ref": [
      "r122",
      "r192",
      "r196",
      "r197",
      "r198",
      "r591"
     ]
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AllowanceForDoubtfulAccountsReceivableCurrent",
     "crdr": "credit",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Allowance",
        "documentation": "Amount of allowance for credit loss on accounts receivable, classified as current."
       }
      }
     },
     "auth_ref": [
      "r122",
      "r192",
      "r196"
     ]
    },
    "dei_AmendmentFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "AmendmentFlag",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "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/2023",
     "localname": "AmortizationOfIntangibleAssets",
     "crdr": "debit",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesOtherIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amortization expenses",
        "documentation": "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r42",
      "r45"
     ]
    },
    "us-gaap_Assets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Assets",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "TOTAL ASSETS",
        "label": "Assets",
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events."
       }
      }
     },
     "auth_ref": [
      "r100",
      "r120",
      "r141",
      "r174",
      "r180",
      "r184",
      "r193",
      "r214",
      "r215",
      "r216",
      "r217",
      "r218",
      "r219",
      "r220",
      "r221",
      "r222",
      "r336",
      "r338",
      "r349",
      "r378",
      "r431",
      "r507",
      "r518",
      "r550",
      "r551",
      "r583"
     ]
    },
    "us-gaap_AssetsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetsAbstract",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets",
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "ASSETS",
        "label": "Assets [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total current assets",
        "label": "Assets, Current",
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events."
       }
      }
     },
     "auth_ref": [
      "r113",
      "r127",
      "r141",
      "r193",
      "r214",
      "r215",
      "r216",
      "r217",
      "r218",
      "r219",
      "r220",
      "r221",
      "r222",
      "r336",
      "r338",
      "r349",
      "r507",
      "r550",
      "r551",
      "r583"
     ]
    },
    "us-gaap_AssetsCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetsCurrentAbstract",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets",
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "CURRENT ASSETS:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AwardTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AwardTypeAxis",
     "presentation": [
      "http://tandyleather.com/role/EarningsPerShareDetails",
      "http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails",
      "http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails",
      "http://tandyleather.com/role/StockbasedCompensationSummaryOfActivityForNonvestedRestrictedStockUnitAwardsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Type [Axis]",
        "documentation": "Information by type of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r274",
      "r275",
      "r276",
      "r278",
      "r279",
      "r280",
      "r281",
      "r282",
      "r283",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r290",
      "r291",
      "r292",
      "r293",
      "r294",
      "r295",
      "r298",
      "r299",
      "r300",
      "r301",
      "r302"
     ]
    },
    "us-gaap_BalanceSheetLocationAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BalanceSheetLocationAxis",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Balance Sheet Location [Axis]",
        "documentation": "Information by location on balance sheet (statement of financial position)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BalanceSheetLocationDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BalanceSheetLocationDomain",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Balance Sheet Location [Domain]",
        "documentation": "Location in the balance sheet (statement of financial position)."
       }
      }
     },
     "auth_ref": [
      "r56",
      "r57"
     ]
    },
    "us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES",
        "documentation": "The entire disclosure for the basis of presentation and significant accounting policies concepts. Basis of presentation describes the underlying basis used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS). Accounting policies describe all significant accounting policies of the reporting entity."
       }
      }
     },
     "auth_ref": [
      "r87"
     ]
    },
    "us-gaap_BuildingAndBuildingImprovementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BuildingAndBuildingImprovementsMember",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPropertyAndEquipmentNetOfAccumulatedDepreciationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Buildings and Related Improvements [Member]",
        "documentation": "Facility held for productive use including, but not limited to, office, production, storage and distribution facilities and any addition, improvement, or renovation to the structure, for example, but not limited to, interior masonry, interior flooring, electrical, and plumbing."
       }
      }
     },
     "auth_ref": []
    },
    "tlfa_BusinessDescriptionAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://tandyleather.com/20240331",
     "localname": "BusinessDescriptionAbstract",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesBasisOfPresentationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Description [Abstract]",
        "terseLabel": "Description of Business [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "country_CA": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2023",
     "localname": "CA",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesBasisOfPresentationDetails",
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Canada [Member]",
        "label": "CANADA"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash and cash equivalents",
        "label": "Cash and Cash Equivalents, at Carrying Value",
        "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation."
       }
      }
     },
     "auth_ref": [
      "r29",
      "r116",
      "r484"
     ]
    },
    "us-gaap_CashAndCashEquivalentsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashAndCashEquivalentsPolicyTextBlock",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash and cash equivalents",
        "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": [
      "r30"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "crdr": "debit",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodEndLabel": "Cash and cash equivalents, end of period",
        "periodStartLabel": "Cash and cash equivalents, beginning of period",
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents",
        "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates."
       }
      }
     },
     "auth_ref": [
      "r29",
      "r84",
      "r139"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net increase in cash and cash equivalents",
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect",
        "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates."
       }
      }
     },
     "auth_ref": [
      "r2",
      "r84"
     ]
    },
    "srt_ChiefExecutiveOfficerMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ChiefExecutiveOfficerMember",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Chief Executive Officer [Member]"
       }
      }
     },
     "auth_ref": [
      "r545"
     ]
    },
    "dei_CityAreaCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "CityAreaCode",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "City Area Code",
        "documentation": "Area code of city"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ClassOfTreasuryStockTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ClassOfTreasuryStockTable",
     "presentation": [
      "http://tandyleather.com/role/ShareRepurchaseProgramAndShareRepurchasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Class of Treasury Stock [Table]",
        "documentation": "Disclosure of information about treasury stock, including, but not limited to, average cost per share, description of share repurchase program, shares repurchased, shares held for each class of treasury stock."
       }
      }
     },
     "auth_ref": [
      "r49",
      "r50",
      "r51",
      "r52"
     ]
    },
    "us-gaap_CommitmentsAndContingencies": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommitmentsAndContingencies",
     "crdr": "credit",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "COMMITMENTS AND CONTINGENCIES (Note 6)",
        "documentation": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur."
       }
      }
     },
     "auth_ref": [
      "r22",
      "r64",
      "r380",
      "r418"
     ]
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommitmentsAndContingenciesDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "COMMITMENTS AND CONTINGENCIES [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommitmentsAndContingenciesDisclosureTextBlock",
     "presentation": [
      "http://tandyleather.com/role/CommitmentsAndContingencies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "COMMITMENTS AND CONTINGENCIES",
        "label": "Commitments and Contingencies Disclosure [Text Block]",
        "documentation": "The entire disclosure for commitments and contingencies."
       }
      }
     },
     "auth_ref": [
      "r93",
      "r208",
      "r209",
      "r470",
      "r549"
     ]
    },
    "us-gaap_CommonStockCapitalSharesReservedForFutureIssuance": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockCapitalSharesReservedForFutureIssuance",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of common shares reserved for issuance (in shares)",
        "label": "Common Stock, Capital Shares Reserved for Future Issuance",
        "documentation": "Aggregate number of common shares reserved for future issuance."
       }
      }
     },
     "auth_ref": [
      "r23"
     ]
    },
    "us-gaap_CommonStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockMember",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock [Member]",
        "documentation": "Stock that is subordinate to all other stock of the issuer."
       }
      }
     },
     "auth_ref": [
      "r509",
      "r510",
      "r511",
      "r513",
      "r514",
      "r515",
      "r516",
      "r540",
      "r541",
      "r580",
      "r593",
      "r596"
     ]
    },
    "us-gaap_CommonStockParOrStatedValuePerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockParOrStatedValuePerShare",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common stock, par value (in dollars per share)",
        "documentation": "Face amount or stated value per share of common stock."
       }
      }
     },
     "auth_ref": [
      "r67"
     ]
    },
    "us-gaap_CommonStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockSharesAuthorized",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common stock, shares authorized (in shares)",
        "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws."
       }
      }
     },
     "auth_ref": [
      "r67",
      "r419"
     ]
    },
    "us-gaap_CommonStockSharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockSharesIssued",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common stock, shares issued (in shares)",
        "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": [
      "r67"
     ]
    },
    "us-gaap_CommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockSharesOutstanding",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common stock, shares outstanding (in shares)",
        "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r67",
      "r419",
      "r437",
      "r596",
      "r597"
     ]
    },
    "us-gaap_CommonStockValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockValue",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common stock, $0.0024 par value; 25,000,000 shares authorized; 9,826,348 and 9,823,621 shares issued at March 31, 2024 and December 31, 2023, respectively; 8,401,972 and 8,399,245 shares outstanding at March 31, 2024 and December 31, 2023, 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": [
      "r67",
      "r381",
      "r507"
     ]
    },
    "us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Comprehensive income",
        "label": "Comprehensive Income (Loss), Net of Tax, Including Portion Attributable to Noncontrolling Interest",
        "documentation": "Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income. Excludes changes in equity resulting from investments by owners and distributions to owners."
       }
      }
     },
     "auth_ref": [
      "r55",
      "r99",
      "r129",
      "r131",
      "r136",
      "r374",
      "r390"
     ]
    },
    "us-gaap_ComprehensiveIncomePolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ComprehensiveIncomePolicyPolicyTextBlock",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Comprehensive Income",
        "documentation": "Disclosure of accounting policy for comprehensive income."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ConcentrationRiskBenchmarkDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConcentrationRiskBenchmarkDomain",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Concentration Risk Benchmark [Domain]",
        "documentation": "The denominator in a calculation of a disclosed concentration risk percentage."
       }
      }
     },
     "auth_ref": [
      "r34",
      "r36",
      "r58",
      "r59",
      "r189",
      "r469"
     ]
    },
    "us-gaap_ConcentrationRiskByBenchmarkAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConcentrationRiskByBenchmarkAxis",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Concentration Risk Benchmark [Axis]",
        "documentation": "Information by benchmark of concentration risk."
       }
      }
     },
     "auth_ref": [
      "r34",
      "r36",
      "r58",
      "r59",
      "r189",
      "r400",
      "r469"
     ]
    },
    "us-gaap_ConcentrationRiskByTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConcentrationRiskByTypeAxis",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Concentration Risk Type [Axis]",
        "documentation": "Information by type of concentration risk, for example, but not limited to, asset, liability, net assets, geographic, customer, employees, supplier, lender."
       }
      }
     },
     "auth_ref": [
      "r34",
      "r36",
      "r58",
      "r59",
      "r189",
      "r469",
      "r526"
     ]
    },
    "us-gaap_ConcentrationRiskPercentage1": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConcentrationRiskPercentage1",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue percentage",
        "label": "Concentration Risk, Percentage",
        "documentation": "For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the \"benchmark\" (or denominator) in the equation, this concept represents the concentration percentage derived from the division."
       }
      }
     },
     "auth_ref": [
      "r34",
      "r36",
      "r58",
      "r59",
      "r189"
     ]
    },
    "us-gaap_ConcentrationRiskTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConcentrationRiskTypeDomain",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Concentration Risk Type [Domain]",
        "documentation": "For an entity that discloses a concentration risk as a percentage of some financial balance or benchmark, identifies the type (for example, asset, liability, net assets, geographic, customer, employees, supplier, lender) of the concentration."
       }
      }
     },
     "auth_ref": [
      "r34",
      "r36",
      "r58",
      "r59",
      "r189",
      "r469"
     ]
    },
    "us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss",
     "crdr": "credit",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sales return allowance",
        "label": "Contract with Customer, Asset, Allowance for Credit Loss",
        "documentation": "Amount of allowance for credit loss for right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time."
       }
      }
     },
     "auth_ref": [
      "r196",
      "r197",
      "r198",
      "r253"
     ]
    },
    "us-gaap_ContractWithCustomerLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ContractWithCustomerLiability",
     "crdr": "credit",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contract with customer liability",
        "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": [
      "r251",
      "r252",
      "r264"
     ]
    },
    "us-gaap_ContractWithCustomerLiabilityRevenueRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ContractWithCustomerLiabilityRevenueRecognized",
     "crdr": "credit",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue recognized from change in deferred obligation balance",
        "documentation": "Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due."
       }
      }
     },
     "auth_ref": [
      "r265"
     ]
    },
    "us-gaap_CostOfGoodsAndServicesSold": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CostOfGoodsAndServicesSold",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome": {
       "parentTag": "us-gaap_GrossProfit",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cost of sales",
        "documentation": "The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities."
       }
      }
     },
     "auth_ref": [
      "r80",
      "r371"
     ]
    },
    "us-gaap_CostOfGoodsAndServicesSoldDepreciation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CostOfGoodsAndServicesSoldDepreciation",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Depreciation and amortization",
        "documentation": "Amount of expense for allocation of cost of tangible asset over its useful life directly used in production of good and rendering of service."
       }
      }
     },
     "auth_ref": [
      "r535",
      "r547"
     ]
    },
    "dei_CoverAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "CoverAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Cover [Abstract]",
        "documentation": "Cover page."
       }
      }
     },
     "auth_ref": []
    },
    "dei_CurrentFiscalYearEndDate": {
     "xbrltype": "gMonthDayItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "CurrentFiscalYearEndDate",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "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_DebtDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "NOTES PAYABLE AND LONG-TERM DEBT [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtDisclosureTextBlock",
     "presentation": [
      "http://tandyleather.com/role/NotesPayableAndLongtermDebt"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "NOTES PAYABLE AND LONG-TERM DEBT",
        "documentation": "The entire disclosure for information about short-term and long-term debt arrangements, which includes amounts of borrowings under each line of credit, note payable, commercial paper issue, bonds indenture, debenture issue, own-share lending arrangements and any other contractual agreement to repay funds, and about the underlying arrangements, rationale for a classification as long-term, including repayment terms, interest rates, collateral provided, restrictions on use of assets and activities, whether or not in compliance with debt covenants, and other matters important to users of the financial statements, such as the effects of refinancing and noncompliance with debt covenants."
       }
      }
     },
     "auth_ref": [
      "r94",
      "r140",
      "r223",
      "r229",
      "r230",
      "r231",
      "r232",
      "r233",
      "r234",
      "r239",
      "r246",
      "r247",
      "r249"
     ]
    },
    "us-gaap_DebtInstrumentLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentLineItems",
     "presentation": [
      "http://tandyleather.com/role/NotesPayableAndLongtermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Instrument [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": [
      "r143",
      "r224",
      "r225",
      "r226",
      "r227",
      "r228",
      "r230",
      "r235",
      "r236",
      "r237",
      "r238",
      "r240",
      "r241",
      "r242",
      "r243",
      "r244",
      "r245",
      "r248",
      "r358",
      "r492",
      "r493",
      "r494",
      "r495",
      "r496",
      "r538"
     ]
    },
    "us-gaap_DebtInstrumentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentTable",
     "presentation": [
      "http://tandyleather.com/role/NotesPayableAndLongtermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Long-term Debt Instruments [Table]",
        "documentation": "A table or schedule providing information pertaining to long-term debt instruments or arrangements, including identification, terms, features, collateral requirements and other information necessary to a fair presentation. These are debt arrangements that originally required repayment more than twelve months after issuance or greater than the normal operating cycle of the company, if longer."
       }
      }
     },
     "auth_ref": [
      "r20",
      "r47",
      "r48",
      "r60",
      "r61",
      "r62",
      "r65",
      "r95",
      "r96",
      "r143",
      "r224",
      "r225",
      "r226",
      "r227",
      "r228",
      "r230",
      "r235",
      "r236",
      "r237",
      "r238",
      "r240",
      "r241",
      "r242",
      "r243",
      "r244",
      "r245",
      "r248",
      "r358",
      "r492",
      "r493",
      "r494",
      "r495",
      "r496",
      "r538"
     ]
    },
    "us-gaap_DebtInstrumentsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentsAbstract",
     "presentation": [
      "http://tandyleather.com/role/NotesPayableAndLongtermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Instruments [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredIncomeTaxAssetsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredIncomeTaxAssetsNet",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred income taxes",
        "label": "Deferred Income Tax Assets, Net",
        "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting."
       }
      }
     },
     "auth_ref": [
      "r319",
      "r320"
     ]
    },
    "us-gaap_DeferredIncomeTaxLiabilitiesNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredIncomeTaxLiabilitiesNet",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred income taxes",
        "label": "Deferred Income Tax Liabilities, Net",
        "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting."
       }
      }
     },
     "auth_ref": [
      "r319",
      "r320",
      "r379"
     ]
    },
    "us-gaap_DeferredRevenueRevenueRecognized1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredRevenueRevenueRecognized1",
     "crdr": "credit",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred revenue, recognized",
        "documentation": "Amount of revenue recognized that was previously reported as deferred or unearned revenue."
       }
      }
     },
     "auth_ref": []
    },
    "srt_DirectorMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "DirectorMember",
     "presentation": [
      "http://tandyleather.com/role/EarningsPerShareDetails",
      "http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-Employee Directors [Member]",
        "label": "Board of Directors [Member]"
       }
      }
     },
     "auth_ref": [
      "r545",
      "r594"
     ]
    },
    "us-gaap_DisaggregationOfRevenueAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DisaggregationOfRevenueAbstract",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Disaggregated Revenue [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DisaggregationOfRevenueLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DisaggregationOfRevenueLineItems",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Disaggregation of Revenue [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r263",
      "r498",
      "r499",
      "r500",
      "r501",
      "r502",
      "r503",
      "r504"
     ]
    },
    "us-gaap_DisaggregationOfRevenueTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DisaggregationOfRevenueTable",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Disaggregation of Revenue [Table]",
        "documentation": "Disclosure of information about disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor."
       }
      }
     },
     "auth_ref": [
      "r263",
      "r498",
      "r499",
      "r500",
      "r501",
      "r502",
      "r503",
      "r504"
     ]
    },
    "us-gaap_DisaggregationOfRevenueTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DisaggregationOfRevenueTableTextBlock",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Disaggregated 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": [
      "r553"
     ]
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "STOCK-BASED COMPENSATION",
        "documentation": "The entire disclosure for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r268",
      "r273",
      "r304",
      "r305",
      "r307",
      "r506"
     ]
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "STOCK-BASED COMPENSATION [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "tlfa_DiscountsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://tandyleather.com/20240331",
     "localname": "DiscountsAbstract",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Discounts [Abstract]",
        "terseLabel": "Discounts [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentFiscalPeriodFocus": {
     "xbrltype": "fiscalPeriodItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentFiscalPeriodFocus",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "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/2023",
     "localname": "DocumentFiscalYearFocus",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "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/2023",
     "localname": "DocumentPeriodEndDate",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "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/2023",
     "localname": "DocumentQuarterlyReport",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "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": [
      "r522"
     ]
    },
    "dei_DocumentTransitionReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentTransitionReport",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "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": [
      "r523"
     ]
    },
    "dei_DocumentType": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentType",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "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": []
    },
    "country_ES": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2023",
     "localname": "ES",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesBasisOfPresentationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Spain [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareAbstract",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Net income per common share:",
        "label": "EARNINGS PER SHARE [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareBasic": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareBasic",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome",
      "http://tandyleather.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Basic (in dollars per share)",
        "verboseLabel": "Basic earnings 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": [
      "r137",
      "r149",
      "r150",
      "r151",
      "r152",
      "r153",
      "r158",
      "r160",
      "r166",
      "r167",
      "r168",
      "r172",
      "r347",
      "r348",
      "r375",
      "r391",
      "r489"
     ]
    },
    "us-gaap_EarningsPerShareDiluted": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareDiluted",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome",
      "http://tandyleather.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Diluted (in dollars per share)",
        "verboseLabel": "Diluted earnings 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": [
      "r137",
      "r149",
      "r150",
      "r151",
      "r152",
      "r153",
      "r160",
      "r166",
      "r167",
      "r168",
      "r172",
      "r347",
      "r348",
      "r375",
      "r391",
      "r489"
     ]
    },
    "us-gaap_EarningsPerShareDilutedLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareDilutedLineItems",
     "presentation": [
      "http://tandyleather.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings Per Share, Diluted, by Common Class, Including Two Class Method [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": [
      "r160",
      "r164",
      "r166"
     ]
    },
    "us-gaap_EarningsPerShareTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareTextBlock",
     "presentation": [
      "http://tandyleather.com/role/EarningsPerShare"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "EARNINGS PER SHARE",
        "documentation": "The entire disclosure for earnings per share."
       }
      }
     },
     "auth_ref": [
      "r157",
      "r169",
      "r170",
      "r171"
     ]
    },
    "us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Effect of exchange rate changes on cash and cash equivalents",
        "documentation": "Amount of increase (decrease) from effect of exchange rate changes on cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; held in foreign currencies. Excludes amounts for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates."
       }
      }
     },
     "auth_ref": [
      "r351"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateContinuingOperations": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EffectiveIncomeTaxRateContinuingOperations",
     "presentation": [
      "http://tandyleather.com/role/IncomeTaxDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Effective tax rate",
        "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations."
       }
      }
     },
     "auth_ref": [
      "r322"
     ]
    },
    "tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tandyleather.com/20240331",
     "localname": "EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails": {
       "parentTag": "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Unrecognized cost of unvested share-based compensation awards in excess of one year due in the third fiscal year following the latest fiscal year.",
        "label": "Employee Service Share-based Compensation Non-vested Awards Compensation Cost Not Yet Recognized Due In Three Years",
        "terseLabel": "2027"
       }
      }
     },
     "auth_ref": []
    },
    "tlfa_EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tandyleather.com/20240331",
     "localname": "EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails": {
       "parentTag": "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Unrecognized cost of unvested share-based compensation awards due in excess of one year due in the second fiscal year following the latest fiscal year.",
        "label": "Employee Service Share-based Compensation Non-vested Awards Compensation Cost Not Yet Recognized Due In Two Years",
        "terseLabel": "2026"
       }
      }
     },
     "auth_ref": []
    },
    "tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tandyleather.com/20240331",
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails": {
       "parentTag": "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Unrecognized cost of unvested share-based compensation awards in excess of one year due in the next fiscal year following the latest fiscal year.",
        "label": "Employee Service Share-based Compensation Nonvested Awards Compensation Cost Not Yet Recognized Due In Next Twelve Months",
        "terseLabel": "2025"
       }
      }
     },
     "auth_ref": []
    },
    "tlfa_EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tandyleather.com/20240331",
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails": {
       "parentTag": "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Unrecognized cost of unvested share-based compensation awards due during the remainder of the fiscal year.",
        "label": "Employee Service Share-based Compensation Nonvested Awards Compensation Cost Not Yet Recognized Remainder of Fiscal Year",
        "terseLabel": "2024"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Unrecognized Expense",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount",
        "documentation": "Amount of cost not yet recognized for nonvested award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r306"
     ]
    },
    "dei_EntityAddressAddressLine1": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressAddressLine1",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address, Address Line One",
        "documentation": "Address Line 1 such as Attn, Building Name, Street Name"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressCityOrTown": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressCityOrTown",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "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/2023",
     "localname": "EntityAddressPostalZipCode",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "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/2023",
     "localname": "EntityAddressStateOrProvince",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "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/2023",
     "localname": "EntityCentralIndexKey",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "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": [
      "r520"
     ]
    },
    "dei_EntityCommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityCommonStockSharesOutstanding",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "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/2023",
     "localname": "EntityCurrentReportingStatus",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "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/2023",
     "localname": "EntityEmergingGrowthCompany",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Emerging Growth Company",
        "documentation": "Indicate if registrant meets the emerging growth company criteria."
       }
      }
     },
     "auth_ref": [
      "r520"
     ]
    },
    "dei_EntityFileNumber": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityFileNumber",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "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/2023",
     "localname": "EntityFilerCategory",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "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": [
      "r520"
     ]
    },
    "dei_EntityIncorporationStateCountryCode": {
     "xbrltype": "edgarStateCountryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityIncorporationStateCountryCode",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Incorporation, State or Country Code",
        "documentation": "Two-character EDGAR code representing the state or country of incorporation."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityInteractiveDataCurrent": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityInteractiveDataCurrent",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "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": [
      "r524"
     ]
    },
    "dei_EntityRegistrantName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityRegistrantName",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "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": [
      "r520"
     ]
    },
    "dei_EntityShellCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityShellCompany",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "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": [
      "r520"
     ]
    },
    "dei_EntitySmallBusiness": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntitySmallBusiness",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Small Business",
        "documentation": "Indicates that the company is a Smaller Reporting Company (SRC)."
       }
      }
     },
     "auth_ref": [
      "r520"
     ]
    },
    "dei_EntityTaxIdentificationNumber": {
     "xbrltype": "employerIdItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityTaxIdentificationNumber",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "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": [
      "r520"
     ]
    },
    "us-gaap_EquityClassOfTreasuryStockLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquityClassOfTreasuryStockLineItems",
     "presentation": [
      "http://tandyleather.com/role/ShareRepurchaseProgramAndShareRepurchasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity, Class of Treasury Stock [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EquityComponentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquityComponentDomain",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Component [Domain]",
        "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r111",
      "r133",
      "r134",
      "r135",
      "r144",
      "r145",
      "r146",
      "r148",
      "r154",
      "r156",
      "r173",
      "r194",
      "r195",
      "r250",
      "r308",
      "r309",
      "r310",
      "r329",
      "r330",
      "r340",
      "r341",
      "r342",
      "r343",
      "r344",
      "r345",
      "r346",
      "r352",
      "r353",
      "r354",
      "r355",
      "r356",
      "r357",
      "r364",
      "r394",
      "r395",
      "r396",
      "r405",
      "r456"
     ]
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet",
     "crdr": "debit",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesFairValueOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Transfers into (out of) Level 3",
        "documentation": "Amount of transfer of financial instrument classified as an asset into (out of) level 3 of the fair value hierarchy."
       }
      }
     },
     "auth_ref": []
    },
    "tlfa_FairValueOfFinancialInstrumentsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://tandyleather.com/20240331",
     "localname": "FairValueOfFinancialInstrumentsAbstract",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesFairValueOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value of Financial Instruments [Abstract]",
        "terseLabel": "Fair Value of Financial Instruments [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueOfFinancialInstrumentsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueOfFinancialInstrumentsPolicy",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value of Financial Instruments",
        "documentation": "Disclosure of accounting policy for determining the fair value of financial instruments."
       }
      }
     },
     "auth_ref": [
      "r8",
      "r13"
     ]
    },
    "us-gaap_FinanceLeaseLiabilityNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinanceLeaseLiabilityNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finance lease liabilities, non-current",
        "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease, classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r360"
     ]
    },
    "us-gaap_FinanceLeasePrincipalPayments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinanceLeasePrincipalPayments",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Payment of finance lease obligations",
        "label": "Finance Lease, Principal Payments",
        "documentation": "Amount of cash outflow for principal payment on finance lease."
       }
      }
     },
     "auth_ref": [
      "r361",
      "r363"
     ]
    },
    "us-gaap_FinanceLeaseRightOfUseAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinanceLeaseRightOfUseAsset",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing lease assets",
        "documentation": "Amount, after accumulated amortization, of right-of-use asset from finance lease."
       }
      }
     },
     "auth_ref": [
      "r359"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
     "crdr": "debit",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesOtherIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amortization expense, 2025",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r90"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear",
     "crdr": "debit",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesOtherIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amortization expense, 2024",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in remainder of current fiscal year."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour",
     "crdr": "debit",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesOtherIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amortization expense, 2028",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r90"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree",
     "crdr": "debit",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesOtherIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amortization expense, 2027",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r90"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo",
     "crdr": "debit",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesOtherIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amortization expense, 2026",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r90"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesOtherIntangibleAssetsDetails"
     ],
     "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": [
      "r204",
      "r205",
      "r206",
      "r207",
      "r372",
      "r373"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsLineItems",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesOtherIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Assets [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r372"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesOtherIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]",
        "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company."
       }
      }
     },
     "auth_ref": [
      "r43",
      "r44"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsNetAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsNetAbstract",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesOtherIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Intangible Assets [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Foreign currency translation and transactions",
        "documentation": "Disclosure of accounting policy for (1) transactions denominated in a currency other than the reporting enterprise's functional currency, (2) translating foreign currency financial statements that are incorporated into the financial statements of the reporting enterprise by consolidation, combination, or the equity method of accounting, and (3) remeasurement of the financial statements of a foreign reporting enterprise in a hyperinflationary economy."
       }
      }
     },
     "auth_ref": [
      "r350"
     ]
    },
    "us-gaap_FurnitureAndFixturesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FurnitureAndFixturesMember",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPropertyAndEquipmentNetOfAccumulatedDepreciationDetails"
     ],
     "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_GainLossOnDispositionOfAssets1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GainLossOnDispositionOfAssets1",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Loss on disposal of assets",
        "label": "Gain (Loss) on Disposition of Assets",
        "documentation": "Amount of gain (loss) on sale or disposal of assets, including but not limited to property plant and equipment, intangible assets and equity in securities of subsidiaries or equity method investee."
       }
      }
     },
     "auth_ref": [
      "r537"
     ]
    },
    "us-gaap_GeographicConcentrationRiskMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GeographicConcentrationRiskMember",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Geographic Concentration Risk [Member]",
        "documentation": "Reflects the percentage that a specified dollar value on the balance sheet or income statement in the period from one or more specified geographic areas is to a corresponding consolidated, segment, or product line amount. Risk is the materially adverse effects of economic decline or antagonistic political actions resulting in loss of assets, sales volume, labor supply, or source of materials and supplies in a US state or a specified country, continent, or region such as EMEA (Europe, Middle East, Africa)."
       }
      }
     },
     "auth_ref": [
      "r35",
      "r469"
     ]
    },
    "tlfa_GiftCardRedemptionPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://tandyleather.com/20240331",
     "localname": "GiftCardRedemptionPeriod",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Expected customer gift card redemption period, in PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Gift Card Redemption Period",
        "terseLabel": "Gift card redemption period"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GrossProfit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GrossProfit",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Gross profit",
        "label": "Gross Profit",
        "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity."
       }
      }
     },
     "auth_ref": [
      "r79",
      "r141",
      "r174",
      "r179",
      "r183",
      "r185",
      "r193",
      "r214",
      "r215",
      "r216",
      "r217",
      "r218",
      "r219",
      "r220",
      "r221",
      "r222",
      "r349",
      "r490",
      "r550"
     ]
    },
    "us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Impairment of Long-Lived Assets",
        "label": "Impairment or Disposal of Long-Lived Assets, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for recognizing and measuring the impairment of long-lived assets. An entity also may disclose its accounting policy for long-lived assets to be sold. This policy excludes goodwill and intangible assets."
       }
      }
     },
     "auth_ref": [
      "r0",
      "r92"
     ]
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Income before income taxes",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest",
        "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r1",
      "r77",
      "r102",
      "r174",
      "r179",
      "r183",
      "r185",
      "r376",
      "r388",
      "r490"
     ]
    },
    "us-gaap_IncomeStatementAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeStatementAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Condensed Consolidated Statements of Operations and Comprehensive Income [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "INCOME TAX [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxDisclosureTextBlock",
     "presentation": [
      "http://tandyleather.com/role/IncomeTax"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "INCOME TAX",
        "documentation": "The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information."
       }
      }
     },
     "auth_ref": [
      "r142",
      "r316",
      "r323",
      "r324",
      "r327",
      "r331",
      "r333",
      "r334",
      "r335",
      "r404"
     ]
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income tax provision",
        "label": "Income Tax Expense (Benefit)",
        "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations."
       }
      }
     },
     "auth_ref": [
      "r105",
      "r109",
      "r155",
      "r156",
      "r177",
      "r321",
      "r332",
      "r392"
     ]
    },
    "us-gaap_IncomeTaxPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxPolicyTextBlock",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPolicies"
     ],
     "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": [
      "r132",
      "r317",
      "r318",
      "r324",
      "r325",
      "r326",
      "r328",
      "r402"
     ]
    },
    "us-gaap_IncomeTaxesReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxesReceivable",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income tax receivable",
        "documentation": "Carrying amount due within one year of the balance sheet date (or one operating cycle, if longer) from tax authorities as of the balance sheet date representing refunds of overpayments or recoveries based on agreed-upon resolutions of disputes."
       }
      }
     },
     "auth_ref": [
      "r63",
      "r528"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccountsPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInAccountsPayable",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts payable-trade",
        "label": "Increase (Decrease) in Accounts Payable",
        "documentation": "The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccountsReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInAccountsReceivable",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Accounts receivable-trade",
        "label": "Increase (Decrease) in Accounts Receivable",
        "documentation": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccruedLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInAccruedLiabilities",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued expenses and other liabilities",
        "label": "Increase (Decrease) in Accrued Liabilities",
        "documentation": "The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "us-gaap_IncreaseDecreaseInDeferredIncomeTaxes": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInDeferredIncomeTaxes",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Income taxes, net",
        "label": "Increase (Decrease) in Deferred Income Taxes",
        "documentation": "The increase (decrease) during the reporting period in the account that represents the temporary difference that results from Income or Loss that is recognized for accounting purposes but not for tax purposes and vice versa."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "us-gaap_IncreaseDecreaseInInventories": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInInventories",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Inventory",
        "label": "Increase (Decrease) in Inventories",
        "documentation": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInOperatingCapitalAbstract",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Changes in operating assets and liabilities"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInOperatingLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInOperatingLeaseLiability",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 13.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease liabilities",
        "label": "Increase (Decrease) in Operating Lease Liability",
        "documentation": "Amount of increase (decrease) in obligation for operating lease."
       }
      }
     },
     "auth_ref": [
      "r527",
      "r536"
     ]
    },
    "us-gaap_IncreaseDecreaseInOtherCurrentAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInOtherCurrentAssets",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Other current assets",
        "label": "Increase (Decrease) in Other Current Assets",
        "documentation": "Amount of increase (decrease) in current assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r536"
     ]
    },
    "us-gaap_IncreaseDecreaseInOtherNoncurrentAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInOtherNoncurrentAssets",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 12.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Other assets",
        "label": "Increase (Decrease) in Other Noncurrent Assets",
        "documentation": "Amount of increase (decrease) in noncurrent assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r536"
     ]
    },
    "us-gaap_IncreaseDecreaseInPrepaidExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInPrepaidExpense",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Prepaid expenses",
        "label": "Increase (Decrease) in Prepaid Expense",
        "documentation": "The increase (decrease) during the reporting period in the amount of outstanding money paid in advance for goods or services that bring economic benefits for future periods."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "us-gaap_IncreaseDecreaseInStockholdersEquityRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInStockholdersEquityRollForward",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Stockholders' Equity [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements",
     "presentation": [
      "http://tandyleather.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Dilutive effect of service-based restricted stock awards granted under the Plans (in shares)",
        "label": "Incremental Common Shares Attributable to Dilutive Effect of Share-Based Payment Arrangements",
        "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method."
       }
      }
     },
     "auth_ref": [
      "r161",
      "r162",
      "r163",
      "r168",
      "r272"
     ]
    },
    "us-gaap_IntangibleAssetsFiniteLivedPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IntangibleAssetsFiniteLivedPolicy",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Intangibles Assets",
        "documentation": "Disclosure of accounting policy for finite-lived intangible assets. This accounting policy also might address: (1) the amortization method used; (2) the useful lives of such assets; and (3) how the entity assesses and measures impairment of such assets."
       }
      }
     },
     "auth_ref": [
      "r44",
      "r368",
      "r369",
      "r370",
      "r372",
      "r487"
     ]
    },
    "us-gaap_IntellectualPropertyMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IntellectualPropertyMember",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesOtherIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trademarks/Copyrights [Member]",
        "label": "Intellectual Property [Member]",
        "documentation": "Intangible asset arising from original creative thought. Include, but is not limited to, trademarks, patents, and copyrights."
       }
      }
     },
     "auth_ref": [
      "r12"
     ]
    },
    "us-gaap_InterestIncomeExpenseNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestIncomeExpenseNet",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome": {
       "parentTag": "us-gaap_NonoperatingIncomeExpense",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Interest income",
        "label": "Interest Income (Expense), Net",
        "documentation": "The net amount of operating interest income (expense)."
       }
      }
     },
     "auth_ref": [
      "r104"
     ]
    },
    "us-gaap_InventoryFinishedGoods": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryFinishedGoods",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesInventoryDetails": {
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesInventoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finished goods held for sale",
        "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": [
      "r529"
     ]
    },
    "tlfa_InventoryMerchandiseExpectedToBeReturned": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tandyleather.com/20240331",
     "localname": "InventoryMerchandiseExpectedToBeReturned",
     "crdr": "debit",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Gross amount of merchandise or supplies to which the entity expected returns as of balance sheet date.",
        "label": "Inventory, Merchandise Expected to be Returned",
        "verboseLabel": "Estimate of merchandise expected to be returned"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InventoryNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryNet",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 8.0
      },
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesInventoryDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesInventoryDetails",
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventory",
        "totalLabel": "Total inventory",
        "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": [
      "r124",
      "r485",
      "r507"
     ]
    },
    "us-gaap_InventoryNetAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryNetAbstract",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesInventoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventory on hand [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InventoryPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryPolicyTextBlock",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventory",
        "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": [
      "r106",
      "r115",
      "r123",
      "r199",
      "r200",
      "r201",
      "r367",
      "r488"
     ]
    },
    "us-gaap_InventoryWorkInProcessAndRawMaterials": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryWorkInProcessAndRawMaterials",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesInventoryDetails": {
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesInventoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Raw materials and work in process",
        "label": "Inventory, Work in Process and Raw Materials",
        "documentation": "The aggregate carrying amount as of the balance sheet date of items held by the entity which are partially completed at the time of measurement and unprocessed items that will go through the production process and become part of the final product. Includes supplies used directly or indirectly in the manufacturing or production process. This element may be used when the reporting entity combines work in process and raw materials into an aggregate amount."
       }
      }
     },
     "auth_ref": [
      "r531"
     ]
    },
    "tlfa_JPMorganChaseBankNAMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tandyleather.com/20240331",
     "localname": "JPMorganChaseBankNAMember",
     "presentation": [
      "http://tandyleather.com/role/NotesPayableAndLongtermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The name of lender will provide the line of credit facility under the credit agreement.",
        "label": "JP Morgan Chase Bank, N.A. [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeLeasesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeLeasesPolicyTextBlock",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Leases",
        "label": "Lessee, Leases [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for leasing arrangement entered into by lessee."
       }
      }
     },
     "auth_ref": [
      "r362"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilitiesAndStockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://tandyleather.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": [
      "r72",
      "r101",
      "r384",
      "r507",
      "r539",
      "r546",
      "r581"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilitiesAndStockholdersEquityAbstract",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets",
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "LIABILITIES AND STOCKHOLDERS' EQUITY"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://tandyleather.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": [
      "r19",
      "r114",
      "r141",
      "r193",
      "r214",
      "r215",
      "r216",
      "r217",
      "r218",
      "r219",
      "r220",
      "r221",
      "r222",
      "r337",
      "r338",
      "r339",
      "r349",
      "r507",
      "r550",
      "r583",
      "r584"
     ]
    },
    "us-gaap_LiabilitiesCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilitiesCurrentAbstract",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "CURRENT LIABILITIES:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilityForUncertainTaxPositionsNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilityForUncertainTaxPositionsNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Uncertain tax positions",
        "label": "Liability for Uncertainty in Income Taxes, Noncurrent",
        "documentation": "Amount recognized for uncertainty in income taxes classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r21"
     ]
    },
    "us-gaap_LineOfCreditFacilityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LineOfCreditFacilityAxis",
     "presentation": [
      "http://tandyleather.com/role/NotesPayableAndLongtermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lender Name [Axis]",
        "documentation": "Information by name of lender, which may be a single entity (for example, but not limited to, a bank, pension fund, venture capital firm) or a group of entities that participate in the line of credit."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r538"
     ]
    },
    "us-gaap_LineOfCreditFacilityLenderDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LineOfCreditFacilityLenderDomain",
     "presentation": [
      "http://tandyleather.com/role/NotesPayableAndLongtermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Line of Credit Facility, Lender [Domain]",
        "documentation": "Identification of the lender, which may be a single entity (for example, a bank, pension fund, venture capital firm) or a group of entities that participate in the line of credit, including a letter of credit facility."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r538"
     ]
    },
    "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LineOfCreditFacilityMaximumBorrowingCapacity",
     "crdr": "credit",
     "presentation": [
      "http://tandyleather.com/role/NotesPayableAndLongtermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Line of credit facility, maximum borrowing capacity",
        "documentation": "Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility."
       }
      }
     },
     "auth_ref": [
      "r17"
     ]
    },
    "dei_LocalPhoneNumber": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "LocalPhoneNumber",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Local Phone Number",
        "documentation": "Local phone number for entity."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_MachineryAndEquipmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "MachineryAndEquipmentMember",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPropertyAndEquipmentNetOfAccumulatedDepreciationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equipment and Machinery [Member]",
        "documentation": "Tangible personal property used to produce goods and services, including, but is not limited to, tools, dies and molds, computer and office equipment."
       }
      }
     },
     "auth_ref": []
    },
    "srt_MaximumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "MaximumMember",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesOtherIntangibleAssetsDetails",
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPropertyAndEquipmentNetOfAccumulatedDepreciationDetails",
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails",
      "http://tandyleather.com/role/ShareRepurchaseProgramAndShareRepurchasesDetails",
      "http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Maximum [Member]"
       }
      }
     },
     "auth_ref": [
      "r210",
      "r211",
      "r212",
      "r213",
      "r267",
      "r366",
      "r393",
      "r410",
      "r411",
      "r459",
      "r461",
      "r463",
      "r464",
      "r466",
      "r480",
      "r481",
      "r491",
      "r497",
      "r505",
      "r508",
      "r552",
      "r585",
      "r586",
      "r587",
      "r588",
      "r589",
      "r590"
     ]
    },
    "srt_MinimumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "MinimumMember",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPropertyAndEquipmentNetOfAccumulatedDepreciationDetails",
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails",
      "http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Minimum [Member]"
       }
      }
     },
     "auth_ref": [
      "r210",
      "r211",
      "r212",
      "r213",
      "r267",
      "r366",
      "r393",
      "r410",
      "r411",
      "r459",
      "r461",
      "r463",
      "r464",
      "r466",
      "r480",
      "r481",
      "r491",
      "r497",
      "r505",
      "r508",
      "r552",
      "r585",
      "r586",
      "r587",
      "r588",
      "r589",
      "r590"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash used in financing activities",
        "label": "Net Cash Provided by (Used in) Financing Activities",
        "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit."
       }
      }
     },
     "auth_ref": [
      "r138"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash flows from financing activities:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash used in investing activities",
        "label": "Net Cash Provided by (Used in) Investing Activities",
        "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets."
       }
      }
     },
     "auth_ref": [
      "r138"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash flows from investing activities:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash provided by operating activities",
        "label": "Net Cash Provided by (Used in) Operating Activities",
        "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities."
       }
      }
     },
     "auth_ref": [
      "r84",
      "r85",
      "r86"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash flows from operating activities:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetIncomeLoss",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome": {
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest",
       "weight": 1.0,
       "order": 1.0
      },
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows",
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome",
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfStockholdersEquity",
      "http://tandyleather.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net income",
        "totalLabel": "Net income",
        "verboseLabel": "Net income",
        "label": "Net Income (Loss) Attributable to Parent",
        "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent."
       }
      }
     },
     "auth_ref": [
      "r78",
      "r86",
      "r103",
      "r112",
      "r128",
      "r130",
      "r135",
      "r141",
      "r147",
      "r149",
      "r150",
      "r151",
      "r152",
      "r155",
      "r156",
      "r165",
      "r174",
      "r179",
      "r183",
      "r185",
      "r193",
      "r214",
      "r215",
      "r216",
      "r217",
      "r218",
      "r219",
      "r220",
      "r221",
      "r222",
      "r348",
      "r349",
      "r389",
      "r439",
      "r454",
      "r455",
      "r490",
      "r517",
      "r550"
     ]
    },
    "us-gaap_NetIncomeLossAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetIncomeLossAbstract",
     "presentation": [
      "http://tandyleather.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Numerator [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetIncomeLossAvailableToCommonStockholdersBasicAbstract",
     "presentation": [
      "http://tandyleather.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Computation of Earnings Per Share [Abstract]",
        "label": "Net Income (Loss) Available to Common Stockholders, Basic [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NonoperatingIncomeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NonoperatingIncomeExpense",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTotalLabel": "Total other (income) expense",
        "label": "Nonoperating Income (Expense)",
        "documentation": "The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business)."
       }
      }
     },
     "auth_ref": [
      "r81"
     ]
    },
    "tlfa_NumberOfClassesOfCustomerDiscounts": {
     "xbrltype": "integerItemType",
     "nsuri": "http://tandyleather.com/20240331",
     "localname": "NumberOfClassesOfCustomerDiscounts",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of classes of customer discounts.",
        "label": "Number of Classes of Customer Discounts",
        "terseLabel": "Number of classes of customer discounts"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NumberOfOperatingSegments": {
     "xbrltype": "integerItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NumberOfOperatingSegments",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesBasisOfPresentationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Number of operating segments",
        "documentation": "Number of operating segments. An operating segment is a component of an enterprise: (a) that engages in business activities from which it may earn revenues and incur expenses (including revenues and expenses relating to transactions with other components of the same enterprise), (b) whose operating results are regularly reviewed by the enterprise's chief operating decision maker to make decisions about resources to be allocated to the segment and assess its performance, and (c) for which discrete financial information is available. An operating segment may engage in business activities for which it has yet to earn revenues, for example, start-up operations may be operating segments before earning revenues."
       }
      }
     },
     "auth_ref": [
      "r544"
     ]
    },
    "us-gaap_NumberOfReportableSegments": {
     "xbrltype": "integerItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NumberOfReportableSegments",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesBasisOfPresentationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Number of reporting segments",
        "documentation": "Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements."
       }
      }
     },
     "auth_ref": [
      "r544"
     ]
    },
    "us-gaap_NumberOfStores": {
     "xbrltype": "integerItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NumberOfStores",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesBasisOfPresentationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of stores",
        "label": "Number of Stores",
        "documentation": "Represents the number of stores."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingCostsAndExpenses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingCostsAndExpenses",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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. Excludes Selling, General and Administrative Expense."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingIncomeLoss",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome"
     ],
     "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": [
      "r174",
      "r179",
      "r183",
      "r185",
      "r490"
     ]
    },
    "us-gaap_OperatingIncomeLossAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingIncomeLossAbstract",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other (income) expense:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLeaseLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseLiabilityCurrent",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current portion of operating lease liabilities",
        "label": "Operating Lease, Liability, Current",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current."
       }
      }
     },
     "auth_ref": [
      "r360"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseLiabilityNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease liabilities, non-current",
        "label": "Operating Lease, Liability, Noncurrent",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r360"
     ]
    },
    "us-gaap_OperatingLeaseRightOfUseAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseRightOfUseAsset",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating lease assets",
        "documentation": "Amount of lessee's right to use underlying asset under operating lease."
       }
      }
     },
     "auth_ref": [
      "r359"
     ]
    },
    "us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseRightOfUseAssetAmortizationExpense",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating lease asset amortization",
        "documentation": "Amount of periodic reduction over lease term of carrying amount of right-of-use asset from operating lease."
       }
      }
     },
     "auth_ref": [
      "r537"
     ]
    },
    "us-gaap_OtherAssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherAssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other current assets",
        "documentation": "Amount of current assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r126",
      "r507"
     ]
    },
    "us-gaap_OtherAssetsNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherAssetsNoncurrent",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other assets",
        "documentation": "Amount of noncurrent assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r119"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome": {
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome",
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Foreign currency translation adjustments, net of tax",
        "documentation": "Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature."
       }
      }
     },
     "auth_ref": [
      "r4"
     ]
    },
    "tlfa_OtherCountriesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tandyleather.com/20240331",
     "localname": "OtherCountriesMember",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "All other countries excluding the United States and Canada.",
        "label": "Other Countries [Member]",
        "terseLabel": "Other [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherInventoryInTransit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherInventoryInTransit",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesInventoryDetails": {
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesInventoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventory in transit",
        "documentation": "Gross amount of merchandise or supplies to which the entity holds the title but does not hold physical possession because the goods are currently being transported."
       }
      }
     },
     "auth_ref": [
      "r530"
     ]
    },
    "us-gaap_OtherLiabilitiesNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherLiabilitiesNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other non-current liabilities",
        "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r21"
     ]
    },
    "us-gaap_OtherNonoperatingIncomeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherNonoperatingIncomeExpense",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome": {
       "parentTag": "us-gaap_NonoperatingIncomeExpense",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Other, net",
        "label": "Other Nonoperating Income (Expense)",
        "documentation": "Amount of income (expense) related to nonoperating activities, classified as other."
       }
      }
     },
     "auth_ref": [
      "r82"
     ]
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsToAcquirePropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Purchase of property and equipment",
        "label": "Payments to Acquire Property, Plant, and Equipment",
        "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets."
       }
      }
     },
     "auth_ref": [
      "r83"
     ]
    },
    "tlfa_PerformanceBasedRestrictedStockUnitsRSUsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tandyleather.com/20240331",
     "localname": "PerformanceBasedRestrictedStockUnitsRSUsMember",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share instrument which is convertible to stock or an equivalent amount of cash, when specified performance conditions are met.",
        "label": "Performance Based Restricted Stock Units (RSUs) [Member]",
        "terseLabel": "Performance-Based Restricted Stock Units [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PlanNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PlanNameAxis",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Plan Name [Axis]",
        "documentation": "Information by plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r554",
      "r555",
      "r556",
      "r557",
      "r558",
      "r559",
      "r560",
      "r561",
      "r562",
      "r563",
      "r564",
      "r565",
      "r566",
      "r567",
      "r568",
      "r569",
      "r570",
      "r571",
      "r572",
      "r573",
      "r574",
      "r575",
      "r576",
      "r577",
      "r578",
      "r579"
     ]
    },
    "us-gaap_PlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PlanNameDomain",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Plan Name [Domain]",
        "documentation": "Plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r554",
      "r555",
      "r556",
      "r557",
      "r558",
      "r559",
      "r560",
      "r561",
      "r562",
      "r563",
      "r564",
      "r565",
      "r566",
      "r567",
      "r568",
      "r569",
      "r570",
      "r571",
      "r572",
      "r573",
      "r574",
      "r575",
      "r576",
      "r577",
      "r578",
      "r579"
     ]
    },
    "us-gaap_PrepaidExpenseCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PrepaidExpenseCurrent",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Prepaid expenses",
        "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits within a future period of one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r125",
      "r202",
      "r203",
      "r486"
     ]
    },
    "us-gaap_ProceedsFromLinesOfCredit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromLinesOfCredit",
     "crdr": "debit",
     "presentation": [
      "http://tandyleather.com/role/NotesPayableAndLongtermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Line of credit facility, funds borrowed",
        "documentation": "Amount of cash inflow from contractual arrangement with the lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements."
       }
      }
     },
     "auth_ref": [
      "r28",
      "r538"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentByTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentByTypeAxis",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPropertyAndEquipmentNetOfAccumulatedDepreciationDetails"
     ],
     "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": [
      "r7"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentGross",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_PropertyPlantAndEquipmentNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property and equipment, at cost",
        "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": [
      "r91",
      "r117",
      "r387"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentLineItems",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPropertyAndEquipmentNetOfAccumulatedDepreciationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property, Plant and Equipment [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentNet",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Property and equipment, net",
        "label": "Property, Plant and Equipment, Net",
        "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures."
       }
      }
     },
     "auth_ref": [
      "r7",
      "r377",
      "r387",
      "r507"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentNetAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentNetAbstract",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPropertyAndEquipmentNetOfAccumulatedDepreciationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property and Equipment, Net of Accumulated Depreciation [Abstract]",
        "label": "Property, Plant and Equipment, Net [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentPolicyTextBlock",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property and equipment, net of accumulated depreciation",
        "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": [
      "r7",
      "r107",
      "r108",
      "r385"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentTypeDomain",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPropertyAndEquipmentNetOfAccumulatedDepreciationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Lived Tangible Asset [Domain]",
        "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": [
      "r91"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentUsefulLife": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentUsefulLife",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPropertyAndEquipmentNetOfAccumulatedDepreciationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Estimated useful lives of assets",
        "documentation": "Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment."
       }
      }
     },
     "auth_ref": []
    },
    "srt_RangeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "RangeAxis",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesOtherIntangibleAssetsDetails",
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPropertyAndEquipmentNetOfAccumulatedDepreciationDetails",
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails",
      "http://tandyleather.com/role/ShareRepurchaseProgramAndShareRepurchasesDetails",
      "http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statistical Measurement [Axis]"
       }
      }
     },
     "auth_ref": [
      "r210",
      "r211",
      "r212",
      "r213",
      "r266",
      "r267",
      "r299",
      "r300",
      "r301",
      "r365",
      "r366",
      "r393",
      "r410",
      "r411",
      "r459",
      "r461",
      "r463",
      "r464",
      "r466",
      "r480",
      "r481",
      "r491",
      "r497",
      "r505",
      "r508",
      "r511",
      "r548",
      "r552",
      "r586",
      "r587",
      "r588",
      "r589",
      "r590"
     ]
    },
    "srt_RangeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "RangeMember",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesOtherIntangibleAssetsDetails",
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPropertyAndEquipmentNetOfAccumulatedDepreciationDetails",
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails",
      "http://tandyleather.com/role/ShareRepurchaseProgramAndShareRepurchasesDetails",
      "http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statistical Measurement [Domain]"
       }
      }
     },
     "auth_ref": [
      "r210",
      "r211",
      "r212",
      "r213",
      "r266",
      "r267",
      "r299",
      "r300",
      "r301",
      "r365",
      "r366",
      "r393",
      "r410",
      "r411",
      "r459",
      "r461",
      "r463",
      "r464",
      "r466",
      "r480",
      "r481",
      "r491",
      "r497",
      "r505",
      "r508",
      "r511",
      "r548",
      "r552",
      "r586",
      "r587",
      "r588",
      "r589",
      "r590"
     ]
    },
    "us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts Receivable - Trade and Expected Credit Losses",
        "documentation": "Disclosure of accounting policy for determining the allowance for doubtful accounts for trade and other accounts receivable balances, and when impairments, charge-offs or recoveries are recognized."
       }
      }
     },
     "auth_ref": [
      "r40"
     ]
    },
    "tlfa_RestrictedStockAndRestrictedStockUnitsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tandyleather.com/20240331",
     "localname": "RestrictedStockAndRestrictedStockUnitsMember",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails",
      "http://tandyleather.com/role/StockbasedCompensationSummaryOfActivityForNonvestedRestrictedStockUnitAwardsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Stock including a provision that prohibits sale or substantive sale of an equity instrument for a specified period of time or until specified performance conditions are met and Share instrument which is convertible to stock or an equivalent amount of cash, after a specified period of time or when specified performance conditions are met.",
        "label": "Restricted Stock and Restricted Stock Units [Member]",
        "terseLabel": "Restricted Stock and RSU [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RestrictedStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestrictedStockMember",
     "presentation": [
      "http://tandyleather.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restricted Stock [Member]",
        "documentation": "Stock including a provision that prohibits sale or substantive sale of an equity instrument for a specified period of time or until specified performance conditions are met."
       }
      }
     },
     "auth_ref": [
      "r32"
     ]
    },
    "us-gaap_RestrictedStockUnitsRSUMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestrictedStockUnitsRSUMember",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restricted Stock Units [Member]",
        "documentation": "Share instrument which is convertible to stock or an equivalent amount of cash, after a specified period of time or when specified performance conditions are met."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RetainedEarningsAccumulatedDeficit",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Retained earnings",
        "documentation": "Amount of accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r69",
      "r97",
      "r383",
      "r397",
      "r399",
      "r403",
      "r420",
      "r507"
     ]
    },
    "us-gaap_RetainedEarningsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RetainedEarningsMember",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Retained Earnings [Member]",
        "documentation": "Accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r111",
      "r144",
      "r145",
      "r146",
      "r148",
      "r154",
      "r156",
      "r194",
      "r195",
      "r308",
      "r309",
      "r310",
      "r329",
      "r330",
      "r340",
      "r342",
      "r343",
      "r345",
      "r346",
      "r394",
      "r396",
      "r405",
      "r596"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueFromContractWithCustomerAbstract",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue Recognition [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueFromContractWithCustomerExcludingAssessedTax",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome": {
       "parentTag": "us-gaap_GrossProfit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails",
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net sales",
        "terseLabel": "Sales",
        "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": [
      "r175",
      "r176",
      "r178",
      "r181",
      "r182",
      "r186",
      "r187",
      "r189",
      "r262",
      "r263",
      "r371"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueFromContractWithCustomerPolicyTextBlock",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue Recognition",
        "documentation": "Disclosure of accounting policy for revenue from contract with customer."
       }
      }
     },
     "auth_ref": [
      "r110",
      "r254",
      "r255",
      "r256",
      "r257",
      "r258",
      "r259",
      "r260",
      "r261",
      "r482"
     ]
    },
    "tlfa_RevenueRecognitionDiscountsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://tandyleather.com/20240331",
     "localname": "RevenueRecognitionDiscountsPolicyTextBlock",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for sales discounts.",
        "label": "Revenue Recognition, Discounts [Policy Text Block]",
        "terseLabel": "Discounts"
       }
      }
     },
     "auth_ref": []
    },
    "tlfa_SHAREREPURCHASEPROGRAMANDSHAREREPURCHASESAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://tandyleather.com/20240331",
     "localname": "SHAREREPURCHASEPROGRAMANDSHAREREPURCHASESAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "SHARE REPURCHASE PROGRAM AND SHARE REPURCHASES [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SalesRevenueNetMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SalesRevenueNetMember",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Sales [Member]",
        "documentation": "Revenue from sale of product and rendering of service and other sources of income, when it serves as benchmark in concentration of risk calculation."
       }
      }
     },
     "auth_ref": [
      "r189",
      "r525"
     ]
    },
    "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
     "presentation": [
      "http://tandyleather.com/role/EarningsPerShareTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Computation of Basic and Diluted EPS",
        "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": [
      "r543"
     ]
    },
    "us-gaap_ScheduleOfEarningsPerShareDilutedByCommonClassTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfEarningsPerShareDilutedByCommonClassTable",
     "presentation": [
      "http://tandyleather.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Earnings Per Share, Diluted, by Common Class, Including Two Class Method [Table]",
        "documentation": "Complete disclosure pertaining to an entity's diluted earnings per share."
       }
      }
     },
     "auth_ref": [
      "r31",
      "r33",
      "r160",
      "r164",
      "r166"
     ]
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTable",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesOtherIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Finite-Lived Intangible Assets [Table]",
        "documentation": "Schedule of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r43",
      "r44",
      "r372"
     ]
    },
    "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfInventoryCurrentTableTextBlock",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventory",
        "label": "Schedule of Inventory, Current [Table Text Block]",
        "documentation": "Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process."
       }
      }
     },
     "auth_ref": [
      "r15",
      "r73",
      "r74",
      "r75"
     ]
    },
    "us-gaap_ScheduleOfPropertyPlantAndEquipmentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfPropertyPlantAndEquipmentTable",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPropertyAndEquipmentNetOfAccumulatedDepreciationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property, Plant and Equipment [Table]",
        "documentation": "Disclosure of information about physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation."
       }
      }
     },
     "auth_ref": [
      "r7"
     ]
    },
    "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfSegmentReportingInformationBySegmentTable",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesBasisOfPresentationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Segment Reporting Information, by Segment [Table]",
        "documentation": "A table disclosing the profit or loss and total assets for each reportable segment of the entity. 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": [
      "r37",
      "r38",
      "r39",
      "r41"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails",
      "http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails",
      "http://tandyleather.com/role/StockbasedCompensationSummaryOfActivityForNonvestedRestrictedStockUnitAwardsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]",
        "documentation": "Disclosure of information about share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r269",
      "r271",
      "r274",
      "r275",
      "r276",
      "r278",
      "r279",
      "r280",
      "r281",
      "r282",
      "r283",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r290",
      "r291",
      "r292",
      "r293",
      "r294",
      "r295",
      "r298",
      "r299",
      "r300",
      "r301",
      "r302"
     ]
    },
    "us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Activity of Non-vested Restricted Common Stock Awards",
        "documentation": "Disclosure of the number and weighted-average grant date fair value for restricted stock and restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock and restricted stock units that were granted, vested, or forfeited during the year."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-vested, Service-based Awards",
        "documentation": "Tabular disclosure of cost not yet recognized and weighted-average period over which cost is expected to be recognized for nonvested award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r98"
     ]
    },
    "dei_Security12bTitle": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "Security12bTitle",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Title of 12(b) Security",
        "documentation": "Title of a 12(b) registered security."
       }
      }
     },
     "auth_ref": [
      "r519"
     ]
    },
    "dei_SecurityExchangeName": {
     "xbrltype": "edgarExchangeCodeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "SecurityExchangeName",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Security Exchange Name",
        "documentation": "Name of the Exchange on which a security is registered."
       }
      }
     },
     "auth_ref": [
      "r521"
     ]
    },
    "srt_SegmentGeographicalDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "SegmentGeographicalDomain",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesBasisOfPresentationDetails",
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Geographical [Domain]"
       }
      }
     },
     "auth_ref": [
      "r187",
      "r188",
      "r407",
      "r408",
      "r409",
      "r460",
      "r462",
      "r465",
      "r467",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r483",
      "r499",
      "r511",
      "r553",
      "r592"
     ]
    },
    "us-gaap_SegmentReportingInformationLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SegmentReportingInformationLineItems",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesBasisOfPresentationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segment Reporting Information [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SellingGeneralAndAdministrativeExpensesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SellingGeneralAndAdministrativeExpensesPolicyTextBlock",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating expenses",
        "label": "Selling, General and Administrative Expenses, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for inclusion of significant items in the selling, general and administrative (or similar) expense report caption."
       }
      }
     },
     "auth_ref": [
      "r9"
     ]
    },
    "tlfa_ServicedBasedRestrictedStockUnitsRSUsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tandyleather.com/20240331",
     "localname": "ServicedBasedRestrictedStockUnitsRSUsMember",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails",
      "http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share instrument which is convertible to stock or an equivalent amount of cash, after a specified period of time.",
        "label": "Serviced Based Restricted Stock Units (RSUs) [Member]",
        "terseLabel": "Service-Based Restricted Stock Units [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensation",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-based compensation",
        "label": "Share-Based Payment Arrangement, Noncash Expense",
        "documentation": "Amount of noncash expense for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "us-gaap_ShareBasedCompensationAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationAbstract",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based Compensation Expense [Abstract]",
        "label": "Share-Based Payment Arrangement, Noncash Expense [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restricted Stock Plan [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vesting period from grant date",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Period",
        "documentation": "Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition."
       }
      }
     },
     "auth_ref": [
      "r506"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensationSummaryOfActivityForNonvestedRestrictedStockUnitAwardsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Forfeited (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeited in Period",
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r291"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensationSummaryOfActivityForNonvestedRestrictedStockUnitAwardsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forfeited (in dollars per share)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value",
        "documentation": "Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event."
       }
      }
     },
     "auth_ref": [
      "r291"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails",
      "http://tandyleather.com/role/StockbasedCompensationSummaryOfActivityForNonvestedRestrictedStockUnitAwardsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Granted (in shares)",
        "verboseLabel": "Number of restricted stock units granted (in shares)",
        "documentation": "The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan)."
       }
      }
     },
     "auth_ref": [
      "r289"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensationSummaryOfActivityForNonvestedRestrictedStockUnitAwardsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Granted (in dollars per share)",
        "documentation": "The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan)."
       }
      }
     },
     "auth_ref": [
      "r289"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensationSummaryOfActivityForNonvestedRestrictedStockUnitAwardsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodEndLabel": "Balance (in shares)",
        "periodStartLabel": "Balance (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number",
        "documentation": "The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date."
       }
      }
     },
     "auth_ref": [
      "r286",
      "r287"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensationSummaryOfActivityForNonvestedRestrictedStockUnitAwardsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shares [Roll Forward]",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensationSummaryOfActivityForNonvestedRestrictedStockUnitAwardsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodEndLabel": "Balance (in dollars per share)",
        "periodStartLabel": "Balance (in dollars per share)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value",
        "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options."
       }
      }
     },
     "auth_ref": [
      "r286",
      "r287"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensationSummaryOfActivityForNonvestedRestrictedStockUnitAwardsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Share Price [Abstract]",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensationSummaryOfActivityForNonvestedRestrictedStockUnitAwardsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Vested (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period",
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r290"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensationSummaryOfActivityForNonvestedRestrictedStockUnitAwardsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Vested (in dollars per share)",
        "documentation": "The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement."
       }
      }
     },
     "auth_ref": [
      "r290"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails",
      "http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails",
      "http://tandyleather.com/role/StockbasedCompensationSummaryOfActivityForNonvestedRestrictedStockUnitAwardsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-based Compensation Arrangement by Share-based Payment Award [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r269",
      "r271",
      "r274",
      "r275",
      "r276",
      "r278",
      "r279",
      "r280",
      "r281",
      "r282",
      "r283",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r290",
      "r291",
      "r292",
      "r293",
      "r294",
      "r295",
      "r298",
      "r299",
      "r300",
      "r301",
      "r302"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain",
     "presentation": [
      "http://tandyleather.com/role/EarningsPerShareDetails",
      "http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails",
      "http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails",
      "http://tandyleather.com/role/StockbasedCompensationSummaryOfActivityForNonvestedRestrictedStockUnitAwardsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Type [Domain]",
        "documentation": "Award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r274",
      "r275",
      "r276",
      "r278",
      "r279",
      "r280",
      "r281",
      "r282",
      "r283",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r290",
      "r291",
      "r292",
      "r293",
      "r294",
      "r295",
      "r298",
      "r299",
      "r300",
      "r301",
      "r302"
     ]
    },
    "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-based compensation",
        "label": "Share-Based Payment Arrangement [Policy Text Block]",
        "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": [
      "r268",
      "r277",
      "r296",
      "r297",
      "r298",
      "r299",
      "r302",
      "r311",
      "r312",
      "r313",
      "r314"
     ]
    },
    "us-gaap_ShareBasedPaymentArrangementEmployeeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedPaymentArrangementEmployeeMember",
     "presentation": [
      "http://tandyleather.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Employees [Member]",
        "label": "Share-Based Payment Arrangement, Employee [Member]",
        "documentation": "Recipient, of award granted under share-based payment arrangement, over whom grantor exercises or has right to exercise sufficient control to establish employer-employee relationship based on law of pertinent jurisdiction. Includes, but is not limited to, nonemployee director treated as employee when acting as member of board of directors, if elected by grantor's shareholders or appointed to board position to be filled by shareholder election when existing term expires."
       }
      }
     },
     "auth_ref": [
      "r271",
      "r274",
      "r275",
      "r276",
      "r278",
      "r279",
      "r280",
      "r281",
      "r282",
      "r283",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r290",
      "r291",
      "r292",
      "r293",
      "r294",
      "r295",
      "r298",
      "r299",
      "r300",
      "r301",
      "r302"
     ]
    },
    "tlfa_ShareRepurchaseProgramAndShareRepurchasesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://tandyleather.com/20240331",
     "localname": "ShareRepurchaseProgramAndShareRepurchasesTextBlock",
     "presentation": [
      "http://tandyleather.com/role/ShareRepurchaseProgramAndShareRepurchases"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for the share repurchase program and share repurchases.",
        "label": "Share Repurchase Program and Share Repurchases [Text Block]",
        "terseLabel": "SHARE REPURCHASE PROGRAM AND SHARE REPURCHASES"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharesOutstanding",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Balance (in shares)",
        "periodEndLabel": "Balance (in shares)",
        "label": "Shares, Outstanding",
        "documentation": "Number of shares issued which are neither cancelled nor held in the treasury."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementEquityComponentsAxis",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Components [Axis]",
        "documentation": "Information by component of equity."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r24",
      "r111",
      "r133",
      "r134",
      "r135",
      "r144",
      "r145",
      "r146",
      "r148",
      "r154",
      "r156",
      "r173",
      "r194",
      "r195",
      "r250",
      "r308",
      "r309",
      "r310",
      "r329",
      "r330",
      "r340",
      "r341",
      "r342",
      "r343",
      "r344",
      "r345",
      "r346",
      "r352",
      "r353",
      "r354",
      "r355",
      "r356",
      "r357",
      "r364",
      "r394",
      "r395",
      "r396",
      "r405",
      "r456"
     ]
    },
    "srt_StatementGeographicalAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "StatementGeographicalAxis",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesBasisOfPresentationDetails",
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Geographical [Axis]"
       }
      }
     },
     "auth_ref": [
      "r187",
      "r188",
      "r407",
      "r408",
      "r409",
      "r460",
      "r462",
      "r465",
      "r467",
      "r468",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r483",
      "r499",
      "r511",
      "r553",
      "r592"
     ]
    },
    "us-gaap_StatementLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementLineItems",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "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": [
      "r144",
      "r145",
      "r146",
      "r173",
      "r371",
      "r401",
      "r406",
      "r412",
      "r413",
      "r414",
      "r415",
      "r416",
      "r417",
      "r419",
      "r422",
      "r423",
      "r424",
      "r425",
      "r426",
      "r427",
      "r428",
      "r429",
      "r430",
      "r432",
      "r433",
      "r434",
      "r435",
      "r436",
      "r438",
      "r440",
      "r441",
      "r442",
      "r443",
      "r444",
      "r445",
      "r446",
      "r447",
      "r448",
      "r449",
      "r450",
      "r451",
      "r452",
      "r453",
      "r456",
      "r512"
     ]
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementOfCashFlowsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Condensed Consolidated Statements of Cash Flows [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfFinancialPositionAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementOfFinancialPositionAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Condensed Consolidated Balance Sheets [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementOfStockholdersEquityAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Condensed Consolidated Statements of Stockholders' Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementTable",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement [Table]",
        "documentation": "Schedule reflecting a Statement of Income, Statement of Cash Flows, Statement of Financial Position, Statement of Shareholders' Equity and Other Comprehensive Income, or other statement as needed."
       }
      }
     },
     "auth_ref": [
      "r144",
      "r145",
      "r146",
      "r173",
      "r371",
      "r401",
      "r406",
      "r412",
      "r413",
      "r414",
      "r415",
      "r416",
      "r417",
      "r419",
      "r422",
      "r423",
      "r424",
      "r425",
      "r426",
      "r427",
      "r428",
      "r429",
      "r430",
      "r432",
      "r433",
      "r434",
      "r435",
      "r436",
      "r438",
      "r440",
      "r441",
      "r442",
      "r443",
      "r444",
      "r445",
      "r446",
      "r447",
      "r448",
      "r449",
      "r450",
      "r451",
      "r452",
      "r453",
      "r456",
      "r512"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodSharesRestrictedStockAwardGross",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfStockholdersEquity",
      "http://tandyleather.com/role/StockbasedCompensationNonvestedServicebasedRestrictedStockUnitAwardsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Vesting of restricted stock units (in shares)",
        "terseLabel": "Number of shares issued from vesting of restricted stock (in shares)",
        "label": "Stock Issued During Period, Shares, Restricted Stock Award, Gross",
        "documentation": "Total number of shares issued during the period, including shares forfeited, as a result of Restricted Stock Awards."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r97"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodValueRestrictedStockAwardGross",
     "crdr": "credit",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Vesting of restricted stock units",
        "documentation": "Aggregate value of stock related to Restricted Stock Awards issued during the period."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r66",
      "r67",
      "r97"
     ]
    },
    "tlfa_StockRepurchaseProgramAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://tandyleather.com/20240331",
     "localname": "StockRepurchaseProgramAbstract",
     "presentation": [
      "http://tandyleather.com/role/ShareRepurchaseProgramAndShareRepurchasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Repurchase Program [Abstract]",
        "terseLabel": "Share Repurchase Program and Share Repurchases [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockRepurchaseProgramAuthorizedAmount1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockRepurchaseProgramAuthorizedAmount1",
     "crdr": "credit",
     "presentation": [
      "http://tandyleather.com/role/ShareRepurchaseProgramAndShareRepurchasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Repurchase of common stock",
        "documentation": "Amount of stock repurchase plan authorized."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1",
     "crdr": "credit",
     "presentation": [
      "http://tandyleather.com/role/ShareRepurchaseProgramAndShareRepurchasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Remaining repurchase of common stock",
        "documentation": "Amount remaining of a stock repurchase plan authorized."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockRepurchasedAndRetiredDuringPeriodShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockRepurchasedAndRetiredDuringPeriodShares",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Repurchase of common stock (in shares)",
        "label": "Stock Repurchased and Retired During Period, Shares",
        "documentation": "Number of shares that have been repurchased and retired during the period."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r66",
      "r67",
      "r97"
     ]
    },
    "us-gaap_StockRepurchasedAndRetiredDuringPeriodValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockRepurchasedAndRetiredDuringPeriodValue",
     "crdr": "debit",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Repurchase of common stock",
        "label": "Stock Repurchased and Retired During Period, Value",
        "documentation": "Equity impact of the value of stock that has been repurchased and retired during the period. The excess of the purchase price over par value can be charged against retained earnings (once the excess is fully allocated to additional paid in capital)."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r66",
      "r67",
      "r97"
     ]
    },
    "us-gaap_StockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets",
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total stockholders' equity",
        "periodStartLabel": "Balance",
        "periodEndLabel": "Balance",
        "label": "Equity, Attributable to Parent",
        "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r67",
      "r70",
      "r71",
      "r88",
      "r421",
      "r437",
      "r457",
      "r458",
      "r507",
      "r518",
      "r539",
      "r546",
      "r581",
      "r596"
     ]
    },
    "us-gaap_StockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockholdersEquityAbstract",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets",
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "STOCKHOLDERS' EQUITY:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TaxesPayableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TaxesPayableCurrent",
     "crdr": "credit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income taxes payable",
        "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable for statutory income, sales, use, payroll, excise, real, property and other taxes. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r18"
     ]
    },
    "srt_TitleOfIndividualAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "TitleOfIndividualAxis",
     "presentation": [
      "http://tandyleather.com/role/EarningsPerShareDetails",
      "http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Title of Individual [Axis]"
       }
      }
     },
     "auth_ref": [
      "r545",
      "r582"
     ]
    },
    "srt_TitleOfIndividualWithRelationshipToEntityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "TitleOfIndividualWithRelationshipToEntityDomain",
     "presentation": [
      "http://tandyleather.com/role/EarningsPerShareDetails",
      "http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Title of Individual [Domain]"
       }
      }
     },
     "auth_ref": []
    },
    "dei_TradingSymbol": {
     "xbrltype": "tradingSymbolItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "TradingSymbol",
     "presentation": [
      "http://tandyleather.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Symbol",
        "documentation": "Trading symbol of an instrument as listed on an exchange."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TreasuryStockCommonMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TreasuryStockCommonMember",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Treasury Stock [Member]",
        "documentation": "Previously issued common shares repurchased by the issuing entity and held in treasury."
       }
      }
     },
     "auth_ref": [
      "r49"
     ]
    },
    "us-gaap_TreasuryStockCommonShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TreasuryStockCommonShares",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Treasury stock, shares (in shares)",
        "documentation": "Number of previously issued common shares repurchased by the issuing entity and held in treasury."
       }
      }
     },
     "auth_ref": [
      "r49"
     ]
    },
    "us-gaap_TreasuryStockCommonValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TreasuryStockCommonValue",
     "crdr": "debit",
     "calculation": {
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": -1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Treasury stock at cost (1,424,376 shares at March 31, 2024 and December 31, 2023 respectively)",
        "label": "Treasury Stock, Common, Value",
        "documentation": "Amount allocated to previously issued common shares repurchased by the issuing entity and held in treasury."
       }
      }
     },
     "auth_ref": [
      "r25",
      "r49",
      "r52"
     ]
    },
    "tlfa_TwoThousandAndThirteenRestrictedStockPlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tandyleather.com/20240331",
     "localname": "TwoThousandAndThirteenRestrictedStockPlanMember",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Refers to 2013 Restricted stock plan.",
        "label": "Two Thousand and Thirteen Restricted Stock Plan [Member]",
        "terseLabel": "2013 Restricted Stock Plan [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "tlfa_TwoThousandAndTwentyThreeRestrictedStockPlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tandyleather.com/20240331",
     "localname": "TwoThousandAndTwentyThreeRestrictedStockPlanMember",
     "presentation": [
      "http://tandyleather.com/role/StockbasedCompensation2013And2023RestrictedStockPlansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Refers to 2023 Restricted stock plan.",
        "label": "Two Thousand and Twenty Three Restricted Stock Plan [Member]",
        "terseLabel": "2023 Restricted Stock Plan [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "country_US": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2023",
     "localname": "US",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesBasisOfPresentationDetails",
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesRevenueRecognitionAndDiscountsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "United States [Member]",
        "label": "UNITED STATES"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_VehiclesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "VehiclesMember",
     "presentation": [
      "http://tandyleather.com/role/BasisOfPresentationAndCertainSignificantAccountingPoliciesPropertyAndEquipmentNetOfAccumulatedDepreciationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Vehicles [Member]",
        "documentation": "Equipment used primarily for road transportation."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome",
      "http://tandyleather.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Diluted (in shares)",
        "terseLabel": "Diluted weighted-average common shares outstanding (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": [
      "r159",
      "r168"
     ]
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "WeightedAverageNumberOfSharesOutstandingAbstract",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome",
      "http://tandyleather.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted average number of shares outstanding:",
        "terseLabel": "Denominator [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "presentation": [
      "http://tandyleather.com/role/CondensedConsolidatedStatementsOfOperationsAndComprehensiveIncome",
      "http://tandyleather.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Basic (in shares)",
        "terseLabel": "Basic weighted-average common shares 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": [
      "r158",
      "r168"
     ]
    }
   }
  }
 },
 "std_ref": {
  "r0": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "05",
   "Paragraph": "4",
   "SubTopic": "10",
   "Topic": "360",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482338/360-10-05-4"
  },
  "r1": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "1",
   "SubTopic": "20",
   "Topic": "940",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481913/940-20-25-1"
  },
  "r2": {
   "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/2147481877/830-230-45-1"
  },
  "r3": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10A",
   "SubTopic": "10",
   "Topic": "220",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-10A"
  },
  "r4": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10A",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "220",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-10A"
  },
  "r5": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28"
  },
  "r6": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28"
  },
  "r7": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "360",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1"
  },
  "r8": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "825",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-1"
  },
  "r9": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "SubTopic": "35",
   "Topic": "720",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483406/720-35-50-1"
  },
  "r10": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(c),(3)",
   "SubTopic": "10",
   "Topic": "810",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-1A"
  },
  "r11": {
   "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"
  },
  "r12": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "44",
   "SubTopic": "20",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479876/805-20-55-44"
  },
  "r13": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "60",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "820",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482053/820-10-60-1"
  },
  "r14": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-8"
  },
  "r15": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483489/210-10-50-1"
  },
  "r16": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.19(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r17": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.19(b),22(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r18": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.19,20)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r19": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.21)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r20": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.22)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r21": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.24)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r22": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.25)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r23": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.29)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r24": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.29-31)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r25": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.30)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r26": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "220",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-14"
  },
  "r27": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "220",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "14A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-14A"
  },
  "r28": {
   "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"
  },
  "r29": {
   "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"
  },
  "r30": {
   "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"
  },
  "r31": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "260",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1"
  },
  "r32": {
   "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"
  },
  "r33": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "260",
   "SubTopic": "10",
   "Section": "55",
   "Paragraph": "52",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482635/260-10-55-52"
  },
  "r34": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-18"
  },
  "r35": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-18"
  },
  "r36": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-20"
  },
  "r37": {
   "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"
  },
  "r38": {
   "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"
  },
  "r39": {
   "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"
  },
  "r40": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-9"
  },
  "r41": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "350",
   "SubTopic": "20",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r42": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "350",
   "SubTopic": "30",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482686/350-30-45-2"
  },
  "r43": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "350",
   "SubTopic": "30",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1"
  },
  "r44": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "350",
   "SubTopic": "30",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2"
  },
  "r45": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "350",
   "SubTopic": "30",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2"
  },
  "r46": {
   "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"
  },
  "r47": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-3"
  },
  "r48": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-8"
  },
  "r49": {
   "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"
  },
  "r50": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "30",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481520/505-30-50-2"
  },
  "r51": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "30",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481520/505-30-50-3"
  },
  "r52": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "30",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481520/505-30-50-4"
  },
  "r53": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481089/718-20-55-12"
  },
  "r54": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481089/718-20-55-13"
  },
  "r55": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "810",
   "SubTopic": "10",
   "Section": "55",
   "Paragraph": "4K",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481175/810-10-55-4K"
  },
  "r56": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4A"
  },
  "r57": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4B"
  },
  "r58": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "825",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-20"
  },
  "r59": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "825",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-21"
  },
  "r60": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "835",
   "SubTopic": "30",
   "Section": "45",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482925/835-30-45-1A"
  },
  "r61": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "835",
   "SubTopic": "30",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482925/835-30-45-2"
  },
  "r62": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "835",
   "SubTopic": "30",
   "Section": "55",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482949/835-30-55-8"
  },
  "r63": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "210",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03.10)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r64": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "210",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03.17)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r65": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "470",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480848/942-470-50-3"
  },
  "r66": {
   "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"
  },
  "r67": {
   "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"
  },
  "r68": {
   "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"
  },
  "r69": {
   "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"
  },
  "r70": {
   "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"
  },
  "r71": {
   "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"
  },
  "r72": {
   "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"
  },
  "r73": {
   "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"
  },
  "r74": {
   "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"
  },
  "r75": {
   "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"
  },
  "r76": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-11"
  },
  "r77": {
   "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"
  },
  "r78": {
   "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"
  },
  "r79": {
   "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,2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r80": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03.2(a),(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r81": {
   "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.7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r82": {
   "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.9)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r83": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-13"
  },
  "r84": {
   "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"
  },
  "r85": {
   "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"
  },
  "r86": {
   "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"
  },
  "r87": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "235",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//235/tableOfContent"
  },
  "r88": {
   "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"
  },
  "r89": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "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"
  },
  "r90": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2"
  },
  "r91": {
   "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"
  },
  "r92": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.CC)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480091/360-10-S99-2"
  },
  "r93": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "440",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//440/tableOfContent"
  },
  "r94": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "470",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//470/tableOfContent"
  },
  "r95": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-6"
  },
  "r96": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-7"
  },
  "r97": {
   "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"
  },
  "r98": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "SubTopic": "10",
   "Subparagraph": "(i)",
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Section": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r99": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-19"
  },
  "r100": {
   "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/2147479853/942-210-S99-1"
  },
  "r101": {
   "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/2147479853/942-210-S99-1"
  },
  "r102": {
   "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/2147483589/942-220-S99-1"
  },
  "r103": {
   "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/2147483589/942-220-S99-1"
  },
  "r104": {
   "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.10)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r105": {
   "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"
  },
  "r106": {
   "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"
  },
  "r107": {
   "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/2147480321/958-360-50-1"
  },
  "r108": {
   "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/2147480321/958-360-50-6"
  },
  "r109": {
   "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"
  },
  "r110": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//606/tableOfContent"
  },
  "r111": {
   "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"
  },
  "r112": {
   "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"
  },
  "r113": {
   "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"
  },
  "r114": {
   "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"
  },
  "r115": {
   "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"
  },
  "r116": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r117": {
   "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"
  },
  "r118": {
   "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"
  },
  "r119": {
   "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"
  },
  "r120": {
   "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"
  },
  "r121": {
   "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(30)(a)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r122": {
   "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"
  },
  "r123": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r124": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r125": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r126": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r127": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r128": {
   "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"
  },
  "r129": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1A"
  },
  "r130": {
   "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"
  },
  "r131": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1B"
  },
  "r132": {
   "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"
  },
  "r133": {
   "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"
  },
  "r134": {
   "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"
  },
  "r135": {
   "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"
  },
  "r136": {
   "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(22))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r137": {
   "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"
  },
  "r138": {
   "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"
  },
  "r139": {
   "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"
  },
  "r140": {
   "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(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r141": {
   "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"
  },
  "r142": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r143": {
   "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"
  },
  "r144": {
   "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"
  },
  "r145": {
   "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"
  },
  "r146": {
   "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"
  },
  "r147": {
   "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"
  },
  "r148": {
   "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"
  },
  "r149": {
   "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"
  },
  "r150": {
   "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"
  },
  "r151": {
   "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"
  },
  "r152": {
   "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"
  },
  "r153": {
   "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"
  },
  "r154": {
   "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"
  },
  "r155": {
   "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"
  },
  "r156": {
   "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"
  },
  "r157": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//260/tableOfContent"
  },
  "r158": {
   "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"
  },
  "r159": {
   "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"
  },
  "r160": {
   "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"
  },
  "r161": {
   "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"
  },
  "r162": {
   "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"
  },
  "r163": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-28A"
  },
  "r164": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-3"
  },
  "r165": {
   "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"
  },
  "r166": {
   "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"
  },
  "r167": {
   "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"
  },
  "r168": {
   "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"
  },
  "r169": {
   "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"
  },
  "r170": {
   "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"
  },
  "r171": {
   "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"
  },
  "r172": {
   "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"
  },
  "r173": {
   "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"
  },
  "r174": {
   "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"
  },
  "r175": {
   "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"
  },
  "r176": {
   "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"
  },
  "r177": {
   "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"
  },
  "r178": {
   "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"
  },
  "r179": {
   "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"
  },
  "r180": {
   "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"
  },
  "r181": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r182": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r183": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r184": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r185": {
   "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"
  },
  "r186": {
   "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"
  },
  "r187": {
   "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"
  },
  "r188": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "41",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41"
  },
  "r189": {
   "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"
  },
  "r190": {
   "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"
  },
  "r191": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481990/310-10-45-9"
  },
  "r192": {
   "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"
  },
  "r193": {
   "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"
  },
  "r194": {
   "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"
  },
  "r195": {
   "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"
  },
  "r196": {
   "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"
  },
  "r197": {
   "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"
  },
  "r198": {
   "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"
  },
  "r199": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "330",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//330/tableOfContent"
  },
  "r200": {
   "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"
  },
  "r201": {
   "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"
  },
  "r202": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "340",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "05",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482955/340-10-05-5"
  },
  "r203": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "340",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483032/340-10-45-1"
  },
  "r204": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1"
  },
  "r205": {
   "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"
  },
  "r206": {
   "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"
  },
  "r207": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2"
  },
  "r208": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "440",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482648/440-10-50-4"
  },
  "r209": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "440",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482648/440-10-50-4"
  },
  "r210": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-4"
  },
  "r211": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-9"
  },
  "r212": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.Y.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480102/450-20-S99-1"
  },
  "r213": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.Y.Q4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480102/450-20-S99-1"
  },
  "r214": {
   "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"
  },
  "r215": {
   "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"
  },
  "r216": {
   "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"
  },
  "r217": {
   "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"
  },
  "r218": {
   "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"
  },
  "r219": {
   "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"
  },
  "r220": {
   "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"
  },
  "r221": {
   "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"
  },
  "r222": {
   "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"
  },
  "r223": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r224": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r225": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r226": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r227": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r228": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r229": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r230": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r231": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r232": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1C",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1C"
  },
  "r233": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1C",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1C"
  },
  "r234": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1C",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1C"
  },
  "r235": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1D",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1D"
  },
  "r236": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1D",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1D"
  },
  "r237": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1D",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1D"
  },
  "r238": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1E",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1E"
  },
  "r239": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1E",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1E"
  },
  "r240": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1E",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1E"
  },
  "r241": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1E",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1E"
  },
  "r242": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1F",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1F"
  },
  "r243": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1F",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1F"
  },
  "r244": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1F",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1F"
  },
  "r245": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1F",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1F"
  },
  "r246": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1I",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1I"
  },
  "r247": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1I",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1I"
  },
  "r248": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1I",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1I"
  },
  "r249": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1I",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1I"
  },
  "r250": {
   "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"
  },
  "r251": {
   "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"
  },
  "r252": {
   "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"
  },
  "r253": {
   "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"
  },
  "r254": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-17"
  },
  "r255": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-18"
  },
  "r256": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-18"
  },
  "r257": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-19"
  },
  "r258": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-20"
  },
  "r259": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-20"
  },
  "r260": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-20"
  },
  "r261": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-20"
  },
  "r262": {
   "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"
  },
  "r263": {
   "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"
  },
  "r264": {
   "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"
  },
  "r265": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-8"
  },
  "r266": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r267": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5"
  },
  "r268": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//718/tableOfContent"
  },
  "r269": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480483/718-10-35-1D"
  },
  "r270": {
   "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"
  },
  "r271": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480483/718-10-35-3"
  },
  "r272": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480454/718-10-45-1"
  },
  "r273": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r274": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r275": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r276": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r277": {
   "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"
  },
  "r278": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r279": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r280": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r281": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r282": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "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": "(c)(1)(iv)(03)",
   "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": "(c)(1)(iv)(04)",
   "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": "(c)(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": "(c)(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": "(c)(2)(iii)",
   "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": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r290": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r291": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r292": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r293": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r294": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r295": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r296": {
   "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"
  },
  "r297": {
   "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"
  },
  "r298": {
   "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"
  },
  "r299": {
   "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"
  },
  "r300": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r301": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r302": {
   "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"
  },
  "r303": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r304": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r305": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r306": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r307": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(l)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r308": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "15",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15"
  },
  "r309": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "15",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15"
  },
  "r310": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "15",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15"
  },
  "r311": {
   "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"
  },
  "r312": {
   "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"
  },
  "r313": {
   "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"
  },
  "r314": {
   "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"
  },
  "r315": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.F)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1"
  },
  "r316": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//740/tableOfContent"
  },
  "r317": {
   "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"
  },
  "r318": {
   "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"
  },
  "r319": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482525/740-10-45-4"
  },
  "r320": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482525/740-10-45-6"
  },
  "r321": {
   "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"
  },
  "r322": {
   "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"
  },
  "r323": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-14"
  },
  "r324": {
   "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"
  },
  "r325": {
   "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"
  },
  "r326": {
   "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"
  },
  "r327": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-21"
  },
  "r328": {
   "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"
  },
  "r329": {
   "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"
  },
  "r330": {
   "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"
  },
  "r331": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB TOPIC 6.I.5.Q1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1"
  },
  "r332": {
   "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"
  },
  "r333": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 11.C)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-2"
  },
  "r334": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "270",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482526/740-270-50-1"
  },
  "r335": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482603/740-30-50-2"
  },
  "r336": {
   "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"
  },
  "r337": {
   "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"
  },
  "r338": {
   "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"
  },
  "r339": {
   "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"
  },
  "r340": {
   "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"
  },
  "r341": {
   "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"
  },
  "r342": {
   "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"
  },
  "r343": {
   "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"
  },
  "r344": {
   "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"
  },
  "r345": {
   "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"
  },
  "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": "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"
  },
  "r350": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//830/tableOfContent"
  },
  "r351": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "230",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481877/830-230-45-1"
  },
  "r352": {
   "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"
  },
  "r353": {
   "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"
  },
  "r354": {
   "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"
  },
  "r355": {
   "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"
  },
  "r356": {
   "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"
  },
  "r357": {
   "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"
  },
  "r358": {
   "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"
  },
  "r359": {
   "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"
  },
  "r360": {
   "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"
  },
  "r361": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-5"
  },
  "r362": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-1"
  },
  "r363": {
   "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"
  },
  "r364": {
   "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"
  },
  "r365": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r366": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "910",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482546/910-10-50-6"
  },
  "r367": {
   "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/2147482105/912-330-50-1"
  },
  "r368": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "920",
   "SubTopic": "350",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483256/920-350-50-1"
  },
  "r369": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "920",
   "SubTopic": "350",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483256/920-350-50-1"
  },
  "r370": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "920",
   "SubTopic": "350",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483256/920-350-50-4"
  },
  "r371": {
   "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"
  },
  "r372": {
   "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"
  },
  "r373": {
   "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/2147483147/928-340-50-1"
  },
  "r374": {
   "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(24))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r375": {
   "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/2147483589/942-220-S99-1"
  },
  "r376": {
   "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/2147479557/942-235-S99-1"
  },
  "r377": {
   "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/2147480842/942-360-50-1"
  },
  "r378": {
   "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/2147479440/944-210-S99-1"
  },
  "r379": {
   "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)(15)(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r380": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r381": {
   "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/2147479440/944-210-S99-1"
  },
  "r382": {
   "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)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r383": {
   "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/2147479440/944-210-S99-1"
  },
  "r384": {
   "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/2147479440/944-210-S99-1"
  },
  "r385": {
   "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/2147479440/944-210-S99-1"
  },
  "r386": {
   "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/2147479440/944-210-S99-1"
  },
  "r387": {
   "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/2147479440/944-210-S99-1"
  },
  "r388": {
   "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/2147483586/944-220-S99-1"
  },
  "r389": {
   "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/2147483586/944-220-S99-1"
  },
  "r390": {
   "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(20))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r391": {
   "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/2147483586/944-220-S99-1"
  },
  "r392": {
   "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/2147483586/944-220-S99-1"
  },
  "r393": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480081/944-40-50-7A"
  },
  "r394": {
   "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"
  },
  "r395": {
   "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"
  },
  "r396": {
   "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"
  },
  "r397": {
   "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"
  },
  "r398": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2"
  },
  "r399": {
   "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"
  },
  "r400": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "825",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479383/944-825-50-1B"
  },
  "r401": {
   "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"
  },
  "r402": {
   "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"
  },
  "r403": {
   "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"
  },
  "r404": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-13"
  },
  "r405": {
   "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/2147480767/946-205-45-4"
  },
  "r406": {
   "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/2147480555/946-210-45-4"
  },
  "r407": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-1"
  },
  "r408": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-2"
  },
  "r409": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6"
  },
  "r410": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6"
  },
  "r411": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6"
  },
  "r412": {
   "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/2147479617/946-210-S99-1"
  },
  "r413": {
   "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/2147479617/946-210-S99-1"
  },
  "r414": {
   "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/2147479617/946-210-S99-1"
  },
  "r415": {
   "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/2147479617/946-210-S99-1"
  },
  "r416": {
   "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/2147479617/946-210-S99-1"
  },
  "r417": {
   "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/2147479617/946-210-S99-1"
  },
  "r418": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r419": {
   "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/2147479617/946-210-S99-1"
  },
  "r420": {
   "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/2147479617/946-210-S99-1"
  },
  "r421": {
   "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/2147479617/946-210-S99-1"
  },
  "r422": {
   "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/2147479617/946-210-S99-1"
  },
  "r423": {
   "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/2147479617/946-210-S99-1"
  },
  "r424": {
   "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/2147479617/946-210-S99-1"
  },
  "r425": {
   "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/2147479617/946-210-S99-1"
  },
  "r426": {
   "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/2147479617/946-210-S99-1"
  },
  "r427": {
   "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/2147479617/946-210-S99-1"
  },
  "r428": {
   "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/2147479617/946-210-S99-1"
  },
  "r429": {
   "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/2147479617/946-210-S99-1"
  },
  "r430": {
   "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/2147479617/946-210-S99-1"
  },
  "r431": {
   "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/2147479617/946-210-S99-1"
  },
  "r432": {
   "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/2147479617/946-210-S99-1"
  },
  "r433": {
   "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/2147479617/946-210-S99-1"
  },
  "r434": {
   "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/2147479617/946-210-S99-1"
  },
  "r435": {
   "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/2147479617/946-210-S99-1"
  },
  "r436": {
   "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/2147479617/946-210-S99-2"
  },
  "r437": {
   "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/2147479617/946-210-S99-2"
  },
  "r438": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483581/946-220-45-3"
  },
  "r439": {
   "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/2147483581/946-220-45-7"
  },
  "r440": {
   "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/2147483575/946-220-S99-1"
  },
  "r441": {
   "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/2147483575/946-220-S99-1"
  },
  "r442": {
   "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/2147483575/946-220-S99-1"
  },
  "r443": {
   "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/2147483575/946-220-S99-1"
  },
  "r444": {
   "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/2147483575/946-220-S99-1"
  },
  "r445": {
   "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/2147483575/946-220-S99-1"
  },
  "r446": {
   "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/2147483575/946-220-S99-1"
  },
  "r447": {
   "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/2147483575/946-220-S99-1"
  },
  "r448": {
   "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/2147483575/946-220-S99-1"
  },
  "r449": {
   "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/2147483575/946-220-S99-1"
  },
  "r450": {
   "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/2147483575/946-220-S99-1"
  },
  "r451": {
   "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/2147483575/946-220-S99-1"
  },
  "r452": {
   "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/2147483575/946-220-S99-1"
  },
  "r453": {
   "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/2147483575/946-220-S99-1"
  },
  "r454": {
   "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/2147483575/946-220-S99-1"
  },
  "r455": {
   "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/2147483575/946-220-S99-3"
  },
  "r456": {
   "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/2147483575/946-220-S99-3"
  },
  "r457": {
   "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/2147483575/946-220-S99-3"
  },
  "r458": {
   "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/2147483575/946-220-S99-3"
  },
  "r459": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-1"
  },
  "r460": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column C)(Footnote 5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-1"
  },
  "r461": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-2"
  },
  "r462": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-12A(Column C)(Footnote 4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-2"
  },
  "r463": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3"
  },
  "r464": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3"
  },
  "r465": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column C)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3"
  },
  "r466": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-6"
  },
  "r467": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column F)(Footnote 7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-6"
  },
  "r468": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "948",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-29(Footnote 4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479851/948-310-S99-1"
  },
  "r469": {
   "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/2147481027/954-310-50-2"
  },
  "r470": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "954",
   "SubTopic": "440",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480327/954-440-50-1"
  },
  "r471": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r472": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r473": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r474": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r475": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column F))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r476": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column G))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r477": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column H))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r478": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column I))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r479": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r480": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "976",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482856/976-310-50-1"
  },
  "r481": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "978",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482707/978-310-50-1"
  },
  "r482": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)",
   "SubTopic": "10",
   "Topic": "235",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483426/235-10-50-4"
  },
  "r483": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13H",
   "Subparagraph": "(b)",
   "SubTopic": "40",
   "Topic": "944",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480046/944-40-55-13H"
  },
  "r484": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-1"
  },
  "r485": {
   "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"
  },
  "r486": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-1"
  },
  "r487": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483426/235-10-50-4"
  },
  "r488": {
   "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"
  },
  "r489": {
   "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"
  },
  "r490": {
   "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"
  },
  "r491": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "12A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481933/310-10-55-12A"
  },
  "r492": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r493": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "69B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481568/470-20-55-69B"
  },
  "r494": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "69C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481568/470-20-55-69C"
  },
  "r495": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "69E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481568/470-20-55-69E"
  },
  "r496": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "69F",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481568/470-20-55-69F"
  },
  "r497": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13"
  },
  "r498": {
   "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"
  },
  "r499": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91"
  },
  "r500": {
   "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"
  },
  "r501": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91"
  },
  "r502": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91"
  },
  "r503": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91"
  },
  "r504": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91"
  },
  "r505": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480547/715-80-55-8"
  },
  "r506": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r507": {
   "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"
  },
  "r508": {
   "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"
  },
  "r509": {
   "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/2147480524/946-210-50-1"
  },
  "r510": {
   "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/2147480524/946-210-50-6"
  },
  "r511": {
   "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/2147480493/946-210-55-1"
  },
  "r512": {
   "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/2147480833/946-310-45-1"
  },
  "r513": {
   "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/2147480032/946-320-S99-1"
  },
  "r514": {
   "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/2147480032/946-320-S99-2"
  },
  "r515": {
   "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/2147480032/946-320-S99-3"
  },
  "r516": {
   "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/2147480032/946-320-S99-6"
  },
  "r517": {
   "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/2147480167/946-830-55-10"
  },
  "r518": {
   "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/2147480167/946-830-55-12"
  },
  "r519": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b"
  },
  "r520": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r521": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r522": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 10-Q",
   "Number": "240",
   "Section": "308",
   "Subsection": "a"
  },
  "r523": {
   "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"
  },
  "r524": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-T",
   "Number": "232",
   "Section": "405"
  },
  "r525": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-18"
  },
  "r526": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "SubTopic": "825",
   "Topic": "944",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479383/944-825-50-1B"
  },
  "r527": {
   "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"
  },
  "r528": {
   "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(3)(a)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r529": {
   "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"
  },
  "r530": {
   "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))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r531": {
   "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"
  },
  "r532": {
   "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"
  },
  "r533": {
   "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"
  },
  "r534": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-6"
  },
  "r535": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r536": {
   "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"
  },
  "r537": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28"
  },
  "r538": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(f))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r539": {
   "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"
  },
  "r540": {
   "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"
  },
  "r541": {
   "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"
  },
  "r542": {
   "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"
  },
  "r543": {
   "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"
  },
  "r544": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-18"
  },
  "r545": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r546": {
   "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"
  },
  "r547": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1"
  },
  "r548": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "410",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481931/410-30-50-10"
  },
  "r549": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//450/tableOfContent"
  },
  "r550": {
   "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"
  },
  "r551": {
   "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"
  },
  "r552": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r553": {
   "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"
  },
  "r554": {
   "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"
  },
  "r555": {
   "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"
  },
  "r556": {
   "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"
  },
  "r557": {
   "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"
  },
  "r558": {
   "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"
  },
  "r559": {
   "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"
  },
  "r560": {
   "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"
  },
  "r561": {
   "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"
  },
  "r562": {
   "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"
  },
  "r563": {
   "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"
  },
  "r564": {
   "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"
  },
  "r565": {
   "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"
  },
  "r566": {
   "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"
  },
  "r567": {
   "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"
  },
  "r568": {
   "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"
  },
  "r569": {
   "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"
  },
  "r570": {
   "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"
  },
  "r571": {
   "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"
  },
  "r572": {
   "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"
  },
  "r573": {
   "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"
  },
  "r574": {
   "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"
  },
  "r575": {
   "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"
  },
  "r576": {
   "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"
  },
  "r577": {
   "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"
  },
  "r578": {
   "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"
  },
  "r579": {
   "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"
  },
  "r580": {
   "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"
  },
  "r581": {
   "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"
  },
  "r582": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-2"
  },
  "r583": {
   "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"
  },
  "r584": {
   "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"
  },
  "r585": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r586": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r587": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r588": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4"
  },
  "r589": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4"
  },
  "r590": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4"
  },
  "r591": {
   "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/2147479440/944-210-S99-1"
  },
  "r592": {
   "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"
  },
  "r593": {
   "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/2147480767/946-205-45-4"
  },
  "r594": {
   "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(12)(b)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r595": {
   "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/2147479617/946-210-S99-1"
  },
  "r596": {
   "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/2147483575/946-220-S99-3"
  },
  "r597": {
   "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/2147483575/946-220-S99-3"
  }
 }
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>51
<FILENAME>0001140361-24-025440-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001140361-24-025440-xbrl.zip
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
ME?=$>XB,>I/,$U;W0#JSE[F#'N@X-6R)1'AUD8+)&'Z#I[J&9QOLK%6=><;
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
M1[3O6ZS_\)MJW+_]AL#%5LC!+OBBOT-QKI$OW=TO]E.(N%-T#RD@W!Y .'N
M<-'*P9&JWU05)+VTQ&O=MB/K_<"X]3KP#SP.:=JQL:/>(T>=^T&+A]FO>#/J
M0[@?R%Y>;-QJQ[=Q7C2*V!^;3=+?RV5MT1#%S^W&O?4^^&)$L=R^BW^_[ZA"
MO?,M+HHM^#=?3@?;[=_Z'5V^[_SM*-<VVO7?<9HX[OJ53.[W[Z]TXN)HW5,W
M[KIN=E.7"\A\?QA>@N1@1.P97F=C303Z6,P<.-HB#=RC?3\^C]"W_>6+U!0
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
MM:TAV*)4X!8E^C9]+/C$]J9*":8YX=H)JXA@1F"$& VUBFP86JU$B.1J6QG
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
M_OV+V]K;5!<W1U^"+V='G\Z^G-WX7I"^.^3LQC UM;'(]KBN.NG)MGELQLO
MZU^6CJBERM;U &&Q@U=CDQUU]*,B%O)(:*2U@E82:"1'!"/I'.1(.(-+B97:
M81':=V_;$A&[1D9LI$4C+>HI+:B%!@E ; 0)A4PB+DS$-0L54IR^.'XV3UI
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
M9<6LP-*$T!)&(.8"JM  QBDF0I(JR;B2F!"MZQZ )W#(U@:*&BFPU5+@Y4)
MHC!DF%M*(TPT],:1 <9 I@Q4$:UPKQKSZ'F<4I-*B";#6].9-AG>VH0B-C[5
M>@.UH=2:"?SZ;6P:V\8DC5/Y9E#,$.3BKK(Q1FT\XYI18]WX>$W)T^&.A6$3
M^+C3<^;7PZF8GPJBZH^[\21U<I>GPAG><4>D]V>YN<V<_>N-US1IMPL+N)^/
M+7>_D! 2C2$(C2202ADJ)C6F2&+*@&!K\H C$-74Z*V;8FY8\]6P)E4XQ)0B
MBBPAA K @3+:^:D6.Q<5KFMW$D$[P)J-Z_G:;,_&H-\X4!M*;2AU]UW/I^=;
MU^2/CKQ/YV_Z!OG?X\PI[SK[G4TN9H=S,2-K>)""^60Z9KPEMV^;P8742#)*
MF',_B3*"(@4E592J"HMW-:T865TMWN9@GX:)Z\[$4@%C.081HI X3F;6**DA
MIYA:H@%?D]N*HATHJMBX:=/XLK4P9AL/8>- ;2BUH=17Z,N2FOBR52TBS\UH
M>_@6^;1D>\QAG?1DVSPVXR<31FW.]U[;BN<4*)J\LC6=@5I B;#2EA%",4/&
M0$JYA4I 8"M:TZVF,AEMRQFW:V2KAO<;WE\E[T.H ->"<ZTH@8HR3@BG0 JH
M0\/)$O=K/=Y5-JQKJXH7LU7C0;\V$[KQ2S8.U(92&TI]A1YT?;+!ITEJW+0#
MU4M3TU'W09Z*3M8N*M8"H?_5R_);T\FSHJ5*D%B?-]XFS[I)-.U0HJGH;G"<
MW'93TS*=+/YN2E67?4(^'M#QC2?C_D...OKF@:B/1C3M3.T+>R/NRET1+&4(
M8XHX9(0")*6,F.$ *1AI"-?E8<.HKL>V-\GF1@:L6@;,V<._<B' .+ *2LL!
MQ 2'6B!J@468 !EB;)=X$.#KV?O[9")8I!- X[&_-I.]\8,V#M2&4AM*?84>
M>VURWF/[B6<=E#AF'C7Y\"8GMM4YL0IC?VBVNV_MGB>=RR0M#/L\3V/9RX6;
MX4TR=SLETS3B/(1,($NT-@)Q) P*$04 0TC6Y.^'O,FH-]*CD1Y;)CT C#B6
M(C+24 *M%%@ 0GF$I)50LR4V"7M<>NQN/4[CX;\V$[_QFS8.U(92&TK=?0^_
M#LY\N5P]Z)K48>/VUADP64NDE6=EUL9AKQGUU8UO7PUX&NIIJ*>&!OLCHOVE
MYQI\$EFL:B*%=]@\V-ZPQX9/@#D1:<?YW-FE2:^]&5'0:REH(2R3,M(144H1
M'D%&,-<0<!8QWUFC8BO^HR%/7 Y:H%', LR)68!WH*X'1FV<J1K^;_A_=?QO
MA+52:X$XQ$1$BM-01M+:D(5 @^BIAVL^G__KVHICMSS9EYH[G^-V+S>Z)@9/
MS:3:CHFNC<BG 8&5)!1F@(16$D())P9B1H@E$(@P(J&&_*E)V=VS4.IFAC1<
M^0JX4E*  1.8A@(3A00/0QM)!(@*E48@?/5V0SV-@R:O60]SL):NQ^L":D.I
M#:4VWN <;S!ZS!G\'^,Q:70@W$3$-Q,X_2Q-ZK<%%RG++$AZ>9:+CJ_ZJ<I?
M-M9I[5CQU8"GH9Z&>FIH@S>IRIK1T"Z;44N.&@SM@:.^.7!>6 ,7MH@@9!</
MIL!D#@( ;3GAP!IN")* ,14B2*42A"#C8P-/BO#!<BP!+!Q+8/L$@'U,Z]K1
M;.,LTW!WP]W/X&Z.*&.&<P&8)1 S:0##0A!% +585QP?^6BD\-G<[9ZU#V%=
MSY!\;8YEDV;<<:-_/=)G0"A30JA\8A"W'/((2,HCPC1T7S#A3$'-*%?$K,NZ
MH+6V+NIF0C0\M\T\)P1BQA@N*(V(":VP-L(*"8B1PI&JX+D5Z7P*]F&X"XG[
M*<4^^/"3N^KWIPYO3&GAP>M]@ZO8WL]O*%'<S^(_W90@*+I'?)3I^]'C^X";
M\S)E_.[8Y[SKIF4"H51RZ^![[VC*@25W/W*4%HA.$+O'?DM%.^B*M-]]LF4R
M$QPGWM+(C/:?B@9DPD>E3^..Z*C8#;_.W86B;^6[52\@6 Q:JFU$6A!%:V08
MY4EW\)CAE3[-#)\=J+;(' -\NKH\O73\^"DUXH\C]U>)\<OO&%(: '^=_O%I
MX@";[AV.3W$N1*:>TQ<*_5E\]%PQ_/$30,=*AN!@7_C@_H]" GGF<&S>'O[(
MOV!T;>\0?WSO7_SH4KINJ@?2 ^Q 6+>0#Z+]0]QG,X Z)DD_MM+A4_IH*38N
M!Z#8O%P"\7"'^^":6T)K,/NB$=KD^BH,_N&M,G'LO7]T78_B^.]&:(_C\F)*
MOZV$\'/VK4WALHRF.'<4I ;7OHLT%IW2ZPH2*WK,>DGNKW>,%SDB:*5>^/]\
M<_3IR\G%Z?'%^<W)^<VUDQ!>VGG>]V>J>Y;^^%Y,@VB<\4K?'CX_?/JI BY/
M8/I@6OA/8'2 @H\EI;/87L$A=F32UL\2ITXSWP=?C/!-$@.OFI/T?C\XZZA'
M!.'JIE-)PL^GN+'I^"Y'E6K@0?@75".R5G#:3GYDLVED7> (WHA;)P#<Q.*.
M4V5)+W/HRMYN8BIOOG9$3SMS1#_R^J6:#H75XM1*V]M2RJGZPI[SWP=M(OJ6
MWJI8,JB4G,KFQ;SVINRLP<>E15)6V91V::\N6[I+G\8S&\@^S"F<'X*:,.<6
MY)^B#;JW+8,;IX5,\+L;T<J"$R=>=/"[2%4KP'#_93[$D_V&I6)MQ6'"ZO[V
MZZ#C#9-LZ?5H==3I U/;3'T-RI^#<EQ6I@\XWUXR6*T06EWA6[7QZ>U*Z^W*
MP*;);9!T32IR'\'P(:?O<1Z;[(4E<'/6NTHV&"?RYS[\"4&R=4N6!GHK9\CU
ME$#UK\TY^/5EP%]&'<1RZ&W)F>;Q256@X:6;H%94_S!_WL\[9%%8PSGB./3G
MJQ(82F84,2 DR&C!E%Q3.]CE'["ZSD*%I1/ZZV6_E6Y0W!1OOB1!.?-D9!(!
M Y"BC(5$2,IM&"I*+1+0( W!NCJQ+OUTU)HQ[OH,AFJQ/G'MY7'EO<.'HX"R
M($^"U#A*47';%.?=#5KSN>O^F_(F?S=-OL<^+B3O%[;Y5^"V+2P4-R?Y5NNG
M/RJ?-BCN:Z83&_1O!_IWR17[;+I.C,:#,T0[.A"WOK_ZG\6%QCM;[Z3JYGL=
M)UE^8?^6)#H[ZNAKDWZ/E<FND[8NDTW)MJ,:@]!RAJ4 A#,M!;)&.Y^, &8(
MK"@G7XE3AA'<;=NNX;IMYKJ7>%5/9DFN >4DXB;BA A,N(@B3,.( FBD,$_M
M(?=<ED1LQ^,D&W:WGJ[Y+T8.4=N(S 0BRYS?5 _UWUC"S]#6(X1^\?B\\H^_
ML%\S<^01>U3"Z\E=UY=BC6W#4 (AKK'3T82)D D1.;\98*%X*-&ZSM+F<-G'
MYS;>X8[SQ$MTZ0L8)I)$P%"%E!E I,!,: 4MD@QJ811>UW%2#-<IB%E_U?FH
MU98F/T83]3'KP!&,CK-NDHFVKTXM%&0V7>A1!^.\-/=Z&NK+GN#RC?99,WQ<
MAOQ-Q!U/+!>=SP6IQ'[,A2U$2 9+$H,H9VY#9*A6B BKG> P# !!"(Q0A"I.
MJE^&BK7QG=$'?YHTV3L\F!852Z;EU=G?JZ3OA@-?"0<*P6SH_& F.:'2<.<:
MDS#D"*D($Q,M3V=G!;P.YKG$5>T.=H']MLX5OLX3]<>!%'Y[BM_>Z(R]Q@&N
MH;$_1Q(,SU P^KB$Q#$)$ )%#<6"8A)I*'4$L356"&2QKCI/825N+N3+;G32
MN+D[3ODO<7/GL@6@1CMK%$<68:<D(5<,">?56F:X0$"L*T2,EMTN_/4ZL\O1
MB\<MT?EFBAV0I?*9PK J<L7M6,BX7932-*GB74I:U014==--VP:_AM2:O-]D
M4[>]PR.E^AO;4Z-,_-UOJ?9='O0&-V,T1E^EN_/F<</NK*-2G[GX;/K_GG6&
MJ+T:8;;L_83<,LDC"VU$(-4":L0@T2%7%B!=47B]&N^';I>95X68MPVKU(M5
M'O>/ELM'6DC%0J%A) P)J15(TA KA'E$PU ]]72E9_,1V*[<WY.QM@B3[8*W
M-5+,9YWO;E22WC?.U"Y9N$\/9$X+I"%I.$^['+CAH2!8AP933*A G!H,,0!:
M1A&1R\PI+I;1@/N0U4DH-9YEPW>50ODY8=1%F=+Q)-2&(V!-2% D)"6"&P"=
MD:T4I$LT#Q9,,^YCNNPFJS5CRNWSP2]3TQ6Q#DR_LFR#X=/&GUB*@AX@=+I2
M$&"NC!)<*"D(4Y)QSJCS("+-$ ]-17)EM3HZ0C62!373P@TOK,&WGLDI(3-,
M.V.6&F6)UD!8%DJCM+"0&*K655/K#.BMXI#&KYZG;"^*!KNJEZ9N\+",MW&Q
M=]O4?[(&+ZCDN$\D_>+!DFRRAF* 3 A))$BHJ#"1,^@CK3&,+#)\[9YVXV8W
MO%=;WENRQ? H9Q(.;0@0)TQ@0B1FA'+&C<7&,0O4%3&P%5D-N\*06VY/+#U+
MWA7W38J\KK[)\U-[EWVTEB2)XJ%@4N,(,4N$!5**B $>A5Q*3>D2FU<LJ.-A
MG;;,-XGRG6"8%27**[A)0&JMQ<PH2:R%C$L&&>;(0 J(7*)>7C0,#FB==/3.
M*^(U./:.^M*>>8BB%T7)2>'M-Z7)K\?=>);8\H3SY8%(R@D\R1#CA( (1$1R
MZSP*)*25"$AD,5EBG=S"6752IZ#]LKV+31H)#8=N8T#@4?8%)C1A:)W]K@FA
M4G, F2)AA(DP#(NU;_,-^<[$ZK;<(EE>G5Z_T["X,]F^[S;<.#GU<G*>'/O_
M;*Q)4Z/[F+WQB"T?->!4O[,$G*@PG C$& 8JTE*&!D%IQ?J#_^%V.3)-#G_C
M'+'<PK?'V<5RIKG%$C@SFA"&) LY9A(*B;50=HD-_A?ML[%=&TXV7>.VMHQ\
MDXE_%<;_,Q-^YTE'S<K&1SB4)++<$$LHU(QC18D((T@%H;BBQ'8E.]D:I[SA
MRRWFRU5DZ1]A6H61@A!S@" @7+K_(8VP9DQI:0VN.+!K)8GZ6E7WO69O?,9!
MQ,LP,(+J]4]VO*Y'CF!UQ^8^CR2?<*;N^J7=TR:W!J$WUD)X&)"\+X<C6>B[
MC2EA(DFP+U.2P)<0:LJD)"%<=_" \3J9+<\\LW@EHJ]A\(;!G\'@$:+%<3<$
M:?>7(9P:QZ8,A@8*:21>=[B#T3H=?E,G!M^P;;.4N I\QYYR'/K>X4V2BW8@
M'DY.K)DDK*FS-T\.U=4=7-J\EQQ$+AW=>9-<#0_N'#LC]B8Y%EGK<G!FYZ?[
MKYF/,(\$\-'HV,YRK8:C*"=.D0\Q$PE"H1C74F(>1I #5B%\5W,*=%A[F;M%
MFS0:,=&(B>6*B9"&A%%*D.&0A$Y,6 ,95! 3:J2A9&V;1.J4N%V7F%BQV36]
M]G+)Q]BI+IM+1"]]&L]*2B]E%B]/4&\,&/-)N"&7AER62RZ;E'X5TMQK8P3(
M?H P<W]1^O9QY],ZO7CPPW@$^9>V]?3P"F]U;$)5=D!0/->*V[A]_R'XY2:^
M-5EP;GX$5\FMZ/PRN#_VWF#,#^9%'8$S# +EK(&@.S ' GE?;E4^L@4JM*S'
M2XTRG%6(J5.R<V7S6U;><^X$GVBJCI-@Q]MU[;GVJR/(IUNG"@D+(F4)H( (
M8"5F(=8A,U$$L2)+;!$T9Y\!8/5N%%:!XMHYKPUG-YS]T"K8=PN)!(JL^T 1
M$Z&Q)+),F0@)12JV%*_$[XQJ=>#0:OEZ?4'^IK!YS8Y S8S_!OT-^FM6I_U4
M[VY^1=4CN<4*'VWOT.O(P+:=6QS8-+D-XLYWDTTX8Q\:QZL.\UN;>58_ -9-
MN.\&5!NRW'VC=Q55NX_6KUSV4M7RU;J)]5$^YV[E]T6?#_/O7MSUF<*:%;34
M)QWM9C-(Z8[#M#Z)YX5F^.04\YPBOTMQ/T@P'RE'0ZFY')#595MT\J../AE2
MUEA7 2B=^PZU)(PPJH4&D=*0(QB%!K.*K@(KBM&ARF/#:Y5#;NIW&R;?3B:G
ME(80<B6U)E@8:6%HPU SS2-DPW6%ZUC#X=5+W/)<ZL).]&82K*5T:B\SVI_Z
M7.6]-ZG4QG5:3L)EC@B?D7$Y&])D9<:%1#8BQAH,-2):<T:I$4)"05$$G?FV
M_N9M]3+8EN6'+H<"ZK7)O)$;KU=N  @M1%(*"S3ASL6#Q'+$+4+ $"LKMFFN
M>!=7(S1>(C2:+'"3!FRRP WZFRSP4 V7*Y6?*H<K0_C/J."MB/I/9XQMW!$=
MM749XQ)\:V\S+GNN*[4?MP>P,Z3%*A?0D'%#QK4DXUW(2.\=#K((/O?<5TMF
MT#HJD6X^PKME=>NGT&2F:IZ9.NT34M%/YC*-G:G3%>UANJK<5X;3*'0(9A&.
M2*2%-)H;& '&!()<FW5EG&L4AZA3+JKAZ=?$T\MA::"XD0;"B"!- (@D=BS.
MD(HB0*")*OK6+B._;.,[HP_^-&FR=WBP_=R\D]MLMR\U7.6F-ZGA)L6SR13/
MZ9 F*U,\%$DJ0LQ#C$+?K8\CH<.0.GL*2A/:)1I4"Z:&:R2+MR_#T\B,1F8L
M8?_NXR(# LP B0122CD?+)3*^5\*F!!8&Y*JDW]VV6#;E3T,3<ZNR=DUZ&_0
M7ZN(]:9W\^X=GEAK5!'K-G>J)3K?3)"*W 3]SUG@5&KA ?K-5\4'OP/+06$[
MF@K7S(I;*&BU!<;>RM:QY!!=G[@O[,F M*\<95]TO$7H_W_R0,E7)LO36.5&
M^QM''3U^H31R[) '(+4&.)* $$:,H#3B,E*06&NCJ**_Z&H.I.)U.NGN^8Q9
M-Q7>R)A&QBR2VENMD.',6*:E<B(C(B2*A)"<$Q0AQH0A9NTERIB_%F&SD@1B
MX^\V#D_C[S;H?P7^[L9=6Y^]C =G._GD91W]V-J;D[6W$S?N9+[(TKLT:9SH
MZ1/(5+OG+9NR3=FW,\L=A$/"#*%82\,)-H9;S(0F(1?N7V+6UIV$-OV#&S'0
MB(%-B0&J ;6:2*&E/V*9<<*MY9 I9375<EU'+(?1+I8V;-J*VNC9)'78O5"3
M#1_U $:=]QK5 T(-N2R;7%Y]AO1XEMNX'TCCGM'QY;"^3V6APYN<:).OJ'5.
M=%F)"2K\Z?8$&D A05P+C & 0G)#8(A,U;8&B);F<Z)]2%]-)J))>S9B9%?%
M"!; 21 @9$@(H3J2!BO%M!3(R1".*UJWH>6)D6B?1_1U2Y$-FG=DWI;M:KJ<
M^,&BE>.SMSX]:N(9=_4QXVZC6YTJ(5H;(>QF$^BD)]MFJ;LR_[(4@"]%/*]H
MA>N1O%H C84.,0@5B91EFG,&3&0AE()&J"I]L+RD =K'L,ZBE[QD7VK#[PV_
MUX[?.3!: F61()9H$PIHB8R,QL1Q/)45.R&7V=U\/R1U2A,NE=VG;*C!AY_<
M5>&(97ACZHCE>=NQL_A/-Q,(BK8T'V7Z?O2D/N JGEN&AG(48-(%MWZ/O>NF
M90*A5'+K%G[OXUN=)'<_$JF[[!N$Y^9;*MH.BFFQ=2!OF<P$QXF/L?F=XNY3
MX;4(1Y#!8+.=&WZ=NPM%>X1WJUY L!BT5-N(M""0UB@DF"?=P6.&5X9$TG]V
MH-HB<]3_Z>KR]%)\,Y]2(_XX<G^5.+]XQ\2XT\3!,!V1[9 8 ?"U>N-3G N1
MJ4F<]VZE2?NS^.C)]1ETQDHQT)]!\:=ZU^7@1_X%I9V8Y.-[_^)'E])U4SV0
M'F 'PKJ%?!#M'^(^FP'4,5'ZL94.G])'2U\<@X)Q2[ <RNS!-;>$UF#VA3<U
MN;YI[VITJTP<>^\?7=<8,B?7\G<CW(3&%S/KL/4AA)_?PJ&$RS*:XMQ1D!I<
M^R[26'1*KRM(+$]%)_-2W%_O&$^5(FBE7O+_?'/TZ<O)Q>GQQ?G-R?G-M9,0
M7K!YWC_V2J,HHA+3(!IGO-*WA\\/GWYZF82L:-<Q@=$!"I[1@N,Y(M3YD_?!
M%R.<<$P#KX&3]'X_..NH,>'W4N=U&@R/-!!9SLLF#W^L%OL/PMY3R76>J#]:
M[@<FS?[C9X9@]&O@S93\OIHJUH6EX(VX=<SO)AEWG!I+>IE#FW?[[Y3IYD'6
M\BK/+4B\7?_<WGSMB)YV)HG>P,L?].>L=R_MF86-Y#1;V]M9?E?^;WM@K_@^
ML-**[WVQWK_5EZ_*YL5/]U8G,8)Q+3VTZ\J&WU3L[%EN2'4[PYGF9O4[2I;J
M>M^'YKYOP7Y=$[[ '+-P0>K?.^Q;1UX.57D<RWK+M1<6V4I?<9S<WCH'<:6K
M\))ZE2\(+GIYECLQZ^AOZCTOH?7%'<$%LRR5_N *F7)1)ME5-KT4:?#?HMTS
M#5DT9%$2&)<BU@?./CL67>_&--314$>).FY\K70OO0^J-5=#'*^9.*Y,+N*.
M<T=/1.H+]:;W>C7T\8KIXTBIWFVO[0,6Y8#Q\,^%C]U4W7!V>#<U+=/)XN^F
M:L!91R6W)GCS)<FRZ7WA#<V]8IJ[239GPRS>?;D2_%6)KB4%0(:!ENJ=PS\?
M'Y^<_/_LO6MWV\B5*/H]OP*32<YIKT5I4$ !J.J>E;7D5Q_/Z;9];77ZS*>L
M>DI,4Z0"D)8UO_[N706   F1$DA*E(W,Q*%(/*IV[??S[=M-9]+A]>H*G/SM
MI9A@V^Y1\-HHX]P",1D%&.T\V)GL4@>XW/GN%+FG2JI]+FE?U7[W0)![$^CF
M<+SW\C1\&(T0NV0J82$3PAI!.4]XG"92)50D,M2*=I7B83+C/VI?N7>)HW29
M3=%U?O9U7/S#.WV<=ONKP]AV2)XT0_)A'9$/MT;D8\Y'$;U'$LX1X=S!I-5W
M0:^[T\9Z,LYW1OV-.)8GUF9!OF&"\RQ.(RXH8YJ3-"99F(4ZX@GP@X.0?^^V
M<?% ^ /A#X2_#\(G/$["2!O),TUY&,N44<42*8BU$4W#?H1_!KHZK@2GRHSU
MNVGI_MPG$XA'G-VC;/^(<'G@ P,?..P.M[1[W,@(6":558QE499118TDQ)@D
M)=0*QE/1U:WQ'HR@\G"[5WMUX(%,X'Z]'?DHR[X)K6!W)#B<SV[@+=\Q;]F!
MM:2$1XKJ4,I,42JY4$(J(I-861X[+T ?UE+%1ZKPR#Z5BS0>I?<ITCXB+!ZT
MBX$#'*]V06D"NH6-9!9SFH"1H2DS/.6&:$%E9R_H^Y@9RQB8BW>U8EL^CG40
M;8.,$DJ_!>XP:!L#KSE*7K.+*Q.4C,P8$W*EJ!(A,R035IL8NXV&1!VTNTN2
MCN+[5 L>$4(>71!U6_2Z?S\LAS<G4F#%!U8(@J 0#KW,5_Q\N.3-^[>B>R*&
M]60!T0<R"S=@\*EIZ:@T[0%C=JM1/]/_7!1S5^UU/KO#;^T"YXYMO&IPC4_8
M;:4 5/AL\B]C97PGW$]&S2ZF[BDN(;PAF:+(F"@.F91I1@VWC)(P(ES&+#6&
MI1TQ]I6NUX\2;GO@-,^!^@;J>Q[41S--5&2!^F*J">$JXB0)$RX20;FPNU+?
M(\2\",\&@AP(\ALA2,I5+#/!8V,2&J:1M#0-!;$99R0.DPZ?T,,(<O?8TR 6
M!RK\UJE09)%,94B4X@J'LG 1F<3())4L$=PDNU+A'L,T PD.)/@MDJ"*64RY
MMD(EEA(3<R4C&J=)J!-").E(OGR@9KKW,,E E0-5'H0J.YMV'1&I&A*G!"1E
MB+.R32Q89!A1) 9R!"K..M(E#S.X[)D;@H\32-A?C.K!G3&W-V[^NRGFY?B-
MO&Z!"8\$6\6A2/=HQZ>.3SRW6.NS+_.Z5RCT75$LC'Z]R &A/ OSI5[+WJKN
MLK,;D>N?\UG1[*W*TC#+9&09BQD-PUA224(3LL2&BJ:J(URZ5Z=TSQ*P:)1%
MQ\@"A_RL@8[W2<=._[@/&1,EI(AEK%A(:4J$$$9DDD2*9#Q6D@VQI8%\!_(]
M6O+-DIB8#.@PY9HF$1,\BVBL2:9QQ('H&$GUU,&I@90'4AY(N8.411*K*$JS
M-$HCFF::Q41+R6)C0LTXWUD2?U]AK8&,!S)^&C(.-8D- YEL$VJB4"AB0YK%
MEK"$@X0>XF(##0\T?-PT3#.3D(PQS*ZDTDK!>&@RDAJME66[&\7?=V!M(.N!
MK/=:T;,#I2M&+$D43U(94JHM)RSF6NDP2@E11APF+O==4.@NL;I\=G-?W&P5
M +7F0/6)K]TQ6\8]<648U-I$H<ZI1A,SGYO< 0RP<V7\4+D5C$*/[6WY956F
MY,8\N6]6IQ0%-[-<+Q\9=G2T;+P$$'*6NZAU/1@)8]1=OY<0JW_7X^)Z(F[Q
MFPGHG,&_!6.08_D<M@W;G<S$O)Z;],E<+W)U*0HW(4GYH0V%;T]=^!E9/9"X
M P\>/WUBRR(>)97B 02Q):WB'OQT>9;:#5J<C_.N*&'3#6DB9>(T5#&A--54
MJ"0C*DYXG&4ZECNGY#XD&/CN_=N[PH';^.[3(<?^-9^!=(Z2=%83@S++99J"
MOI'PA,8ID:"*)*&."6$FC;L:*!YC_&T@G(%P'IEPJ&$QC9(L8L+01";2"!9;
MEC%NB$CYSD61CQ_Y&HAH(*)')J)8)II$PMC0)I3'L30J,49EF0DS:L/L><6<
M!@(:".B1"8AKENDHLXE@E#+*I(YUJF28I1*(R79,F#_::,] /0/U/#+UA$Q&
M6<8RJTQ&LU#Q1&5"<<LU%6D<T><=9QD(:B"H1R8H3;E06C*6Q)3&F< (9J:,
M%,IJ(LQV<?3]$L(NX8I#EQ;MV+[LO9D'8\?MAD*@[RZH>A2=SX:0_X"=O3)Y
M@'5Y/>V7=MS>"F%8G,0B9(R:6#,142.PP#:TJ=F]]'TH6QG(<B#+!Y-EQG3(
M+1 G11..648C"R09II::D&1'V"MM(-&!1+\K$E5IF-B4P;^)I(113ED:)<ID
MBH;6L)WKMH<RDX$\CV%)SY4\66IXG$E!!87_,!F2&,1HR"6A4B8[2]!#3K])
MHF&R[D"BWSR)&L)2FQEBF8AI$EI.0V8R:B+"0LWBW6NNA^J0@5P'<MU+B[>[
M:#C,-+9(-#(%.2L49\P0:4,:959$(ML>>1PDYG'$4ZZ%UJ#'G/C??@RBZZ\'
MC*2\G>6 ?]- +?+<3-5MX$HS)GX8C%BV$QP%4S/'0HBY^'H$,9=N(#T5DYKE
MVN3-M03%;#+6J[!^,H9US_4]PRC,O79V;&+VT=!EP.;[8_-FJ7N7VHI"N&2A
MKTH.>HX,U#_D;*K/E^QTV9P59/@'>RZ^-B?#AF&:QA+T\)32A*?"IEEH58S&
M<AIEAVX^^*VHV@,_&/C!-\$/(J42D7"9&&MHPC+,'I213BFQ813O/B'K.XP[
M#;QAX W?!&_0G!NFB"$4= 6;A#PQ.J2I"CE1463U$/ :^,+ %[X_OD S2TQ,
M&/Q7T%"D+!8V4Y&((FJTT3OW+/B>&K4-3&%@"M\$4Y J2D-#(T-92#-%!"=1
MB 6Q@J:2T2,?J;0^[R4+!W8QL(MOE5WT"@D>G(<(PT2F##4)E53IB)'0Q+$B
MFD:,TWL4U7_+M-\5BCK^J"+%5?:*9*^W-&P1B@(4,CD\X*68B*DRH^!7D:O+
M(":C -'A"(.'6V%Q'!P0EAGHV4).S K/6%\Z_AZ%%" >,_@G28Z(4>ZZC1WX
MZ?T:<+I6<!\6\V(NIH@G3<\+8R2)A):*2YHFH11)&"?2&*MDQE6G,O54@Z'8
M")CPB&?1$?+,>QWUO1'GR-2J?>[M6^$]NQ/M7_:*M=\')T..<@E7FKSPC*<U
M<YY&-!6"2Q93JD*>6F%%)HB24::3SIS/QPHSKP^YBP<F-C"Q@8D-3*S-Q&P:
M<JTYBW7,J55*LBC,M$H2D5K)3*=A^A2Q\36&1D<D8P-/&WC:P-.^29[VPPY,
M348IM@Z3,:.62FJD9@F/J8UTF":6]]3,=@_J%^[L3K9P-C[*LN]56]L=;UX<
M@7MLX),#GWP&NI^2,J*)2KB)+(VTE%)+01G8L* ,JBCNQR8/64V<@M;'Z'?*
M&P>M;^!FWSHWVT7K4PSX1,)Y&F:<IL3PA,1I9KA6<2RDZ4S>>HKLC/MI@604
M9]\KIQNTP(%O#GSSD;3 ,+$AL!J3"LFH"(D@B<P(DRP#-AJK\ ZVN:=B]VP$
M@#A"-O? #(?C2U<Y+AWR,5;S=)W0=^(EWP5H!JP9L&; F@%K!JP9L.8X03-@
MS8 U ]8,6#-@S8 UCP6:1W(%/$Z1RFNCG!^\JE.)CM(%^_0E*=]//\Z=BT4
M&IKH1*599&D:6L$LE4P3Q4.C3=PQNBPBT9,5BT0\'A'*C]"9^03]<[>PCV,A
MX2W+W M5_V7/"]P_C>\0/8AC+E4:FC240*(F$1GAF4S#5&L;$]M1S[4'$MUK
M$<0Q(\^1::#/3)Q^(['&IQ3.FTB?14:&A&5)9@TU/)0\,8139:SB5G<UR[D/
MZ3]"Z4 \BJ+G4=,Y\(&!#SP.']@E\8KH.-+4J@0X !4B$2:*9998KD(9Q[JC
MAN@^C&!(MW\@-_A6LZ8&WO+,><L.K"5C*<F,E,QFADJK16HY(:FFG(1)9%D_
MUG+0@5=\Q#CY%OC)H%T,'. (M M*&.$J)C*+!#5*<J$-HRHB,15QHCIZ]=[+
MS'BRM&X>'F,/KD';&'C-M\%K=C%DK"(DDC:-C:5&1#Q5U))(IREH("*\*]ZP
M)\6!C&CZ31@B3Q?J/-R4+X<W)U(41L,55]<@*/R$+_,5/YNGYV5/Q;">+&SY
M',=M'96F_1UBS&;AL&SA6IS/[G!$NWBUXP.O&FS@DP%94L#9?C;YE[$R'TT^
MGNE/1LTNINXI?Q>3A6F(FD393$K#3*(ES9*44^F"VR!RF%99A_,\KAO"QD<S
MK6J@GN^*>A[(;X^&V"BCAJ5)2$PFJ5)&D(PD21J'4A(INKHO/XS8'B%F%47'
M6"4W$.1 D'T($FOTB9!2Q5E,(Q:QE$7", L42N _'6[=AQ'D]S5_::#"@0K[
M4*')$DU4QK0QC*8,['QK34IL:L)4"='1_^=A5/@=33L:2' @P3XD&'$M0C !
M01H2F@DJ3,( A"SBL316=G0J?*!F>M#90@-5#E2Y-ZKL-;CG,3TV*0VSC"IF
MM*24:FYBFFH;,I,F69)VS!=?(=7!$"R7<K0U3]W"HG7Y??'8BJOQY/;'X'^?
MCZ],$;PW-\&GV968_F]XX-]-,0=]*)C9((>/^5@!>X9'@JWB4*18.T^$V5/'
M%YY;K/39%U/=*Y3YKB@61K]>Y(!0GH7Y@JI/-6*YR\YN1*Y_SF=%T4RNPC&&
MD;*A83$UF91Q%J5"DE2%26HM/; /NF>A%<E&"3E&'C@D6'T_A-R+,IU&<1_"
MC"*I"<LBPEA(B=1"FRA,J4Y(EBH;)T-P:""_[YK\'D..WIM:DT121235#$R$
M.&8L$2S4BFEI>$:[YD ]=73IV.WV@90'4GX24HXR%B=224-9A@5-G$9)B"U1
M1<P4LW*(2PUD_-2P&\CX'OJS3G@JE(QU2BDE#&S:E$3:VH@8*;>[ZH; UD##
M PT_*0W'L3(TU<*$(04I'+/(@#2V(K3&&MTUF'"(C UD/9#U$Y74[$#IS H:
MJC@UJ4VHIF TD]#&421#G1%[#TH?*/1HJVX>*:+VWLR#L>/91QDZ^PY#_R='
M'((>3OS)DSVVR10@:*^#_=*6%:$0.HY"2^.$T#"FS- D#4DLP-AC--HY<?AQ
M(B-/+5L&4OD.2,5D622E#*V(*256,:EYEJ5QI 1CK*L]VQ"6&,CFNR<;PL'V
M &G"C51@BW#.%.,TCI@0+#+,#B& @60&DFF[ZA(NK,HL2W1,;9)(FV26 MD(
M%IM4='3H>3)W^_I$Z?08AZP.9/,=D$VD>:HYRX0--4UHQI0FF34FYEPKH7;.
M\OJ^/=P#"3TC$NI5^W$775E%)5&)8F$44FTTHR(14B0@HK(PH8]5J/'<)<OC
M^([7!NU&FP?M/KVO^>TL!SR=!FJ1YV:J;H-Y+J;%Q'>#$LMZI%$P-7.L\9B+
MKT?IE7XXZ(]C!#DL,RAFD['N-VS[R4)T>]W%X_O7>XVSOVN71R6=][JU@4J.
MB$KVJL??I42C^E$*A5>E3#A'D> ?<C;5YTL!L:Q7!>WE@ST77QN*2TI2*T3$
ME2&$6@'_9X7FTDJE:1IG.Z>M?1_!C8%/#7QJX%,'Y5."*,UT%(9<T#"!CU2&
M(K)4QY0(NK.+_/N++ T\:^!9 \\Z),]2&;=)JJ,H82%-,L/3S(24&D)-$NIH
MYW3B[RNL-_"K@5\-_.J0_ H4*6:B3"D>"FK $!3,VACT+JLB3LG.E8C?=0G3
MP*P&9O5-,:LM\Y4.SJVRV##)%4LYUS04F10ZHY0;G9G(*+.SY^JIIC7%SV.:
M^][YV0/1[S@G.0VL\/MCA7<D$CPU?R0J29B0-!&IH%:GW#+@3D3*C'-C5<=@
MJ;XI"<^8KSTP'+W_N70UNFSC9T^4&D$!(!LVN%ZYV:)3!:AI<GC 2S$14V5&
MP:\B5Y=!3(#4 ,WVB@!;UM(_1\'#8'?.MF6!?3DV+"_0LX6<F/U+E(XE[X4_
MW[WF+76_KM'DA\6\F(LI'E+3?.41CZPP$66"9BJ6F53X5:*4C6+2F1+\5 TE
MV2@FX2A-L[WVL'MD!#LVP_3QR.*P9+N#.#FFB9N/M]T=QF]&*7"*)+%:$45I
M:+CFQ!I@';%PS;8/PC1Z]^$^RE&= [,8F,5WPBRL)BQ,.4LB0IFU3-+,1-H0
MP[A5<6<2PE%,<HM'-#G*"> #[QAXQS/B'5M\.IL'?:<D"5F:ZDRFU"81TUS8
MF$4B9IDD2O1C'KOG -S/>\-'6?;M:1^[8\11N*$'?O2=\J,=V!%/#!$A$XJR
ME(881&,V3%,>1UP3DW2VZGCBLNEPE"3)-\>#!BUFX!K/1XMA-&%1F% 1&T%E
M'/.,AXQDAE.F4Y9U1I6.-]9.1OPHPU*#5C/PI^^7/^W GK15:9:DF;4BHS2D
M3%IAC914&F,4ORL&M!\%)8E&,4F/D)UT!33[5^6[__D3?"/@]/V7:R'ANXO9
M_8D7X_^!MY+P>H[G+?/_*)_C0;7VS(Z8\K:B^8[WG%^:0"@0)@#36QR&.)W-
MX2:1P]?38 R/O<C%!*"5^QKZ2U.8X-5LJD$.&8V?7$H)2JG@[7@JIFH,E]>2
MK3@][/*##7!2$U$ LK[\]/'M1W%A7N9&_'$&_]1XHR9&Y XY+G\*KD1^,9Z>
MS&?7Y<.K;RH$*=_XIP81K[SA[0Q@E]>/KY M#+$/1W-Y6R'QY]5'OU^@I'>K
M_]M_(O[WP"R&FZJ2-T+WG^[$B_(F?$$C&0.L#'QQUT:Z(%V#X1J^.9'XU8FP
ML+D?Q>1&W!9-KOB?EWEUM0>ZYZ6A(\D&%"N&6WX'R[\L5^YR5%;WUI&S4OW4
M//H__\>&PVD=XNI&_X\1L)SF1NY* ZD@VZ?5Q=H9-H\'O>)C57[W1>1C,6V\
MSJ&6ZXN!3!J_GQK$11%<YLC8__W\[.4O;SZ\??7A_?F;]^>?@1\@ T-*?X4R
M88HS4,4J>)J$5G]>?OK30WC?*'#?C(+"Y&.[3N(=P?J5L_SSDMTVB;/[4.[D
M.NT,@1Y\].S]Z_\.?GES=OY_WGP*WIZ].O_PZ;]'P;OWKT[;T'ND]?SGOYV<
MG$W5Y2P_.=GTAW!ZPOL/YV\^K]X$!^^^#\X_!( @K]^\__SF-7[Z_.&7=Z_/
MSN&/M^_>G[U_]>[LE^#S.7SQ*^+0DVSWA]_>G_WV^AVLZ<52(JPBZSZE<M>S
MES]X;0>8-B"U6M'57HIB7'RP'W.0I-.Y*#,8/P-,QA9TEND<##_@63B9^".(
M5C4VQ3F [>4$5#ROU>&?_Y QL6EH);.9I"26+&8D34*>4I,R&G<,C:5U*B/U
M^IT!'>X:3R5?E#;J>+HP^FQ>OB*2DF>)RI2@ED9<,4EC2SG)XBS2E%H"I'?7
MZ6(2YMC>[NEXR:G7P8*79Y_??0X^O T^?GKS&;#M[/S=A_<!T%[PZLVG\[-W
M[X//[WY^_^[MNU=G[\^#LU>O/OSV_OS=^Y^#CX"SK]Z]J;"S4DC+(_I;Z^A*
M2/A.0C7 MT.C!PBC%1#N"27=]IK;V,<&HSX;C.^-(P]CMV*J;X-?C$#/2(!F
MSBR_!78[5:?!#__KWUD4A3^=__)VY#Z2GX+RJQNS^LULD:]^M2A6OX&75-^\
M\IKRZA5N/?67L[SU?;7.ZN<K _K;AAV,@OGLPKCO;\;S2Y#Q15 L9#'68Q#P
MIGBQK@&VM0'4B[VR-BX"$/FEYA[<S/*)QE60[*<BF("J98IY4%P;5-KGMT&.
MGNH)V)!XPZ1<&JRS^JQRT.!.<N.<4O R<U54A/D6U2S\<AH03CC^[]L9V R_
MPS^7(.3-5P%"'A=10A!MBWRF%\JT'X\VR'P6 "Y, #O=2LX<C<*.W5+@W7G#
M4'PEI@+@XG^<N16CU9)/A<\?"!1@V>P*-X577(HBD(OQ9!X(;!BF_H!-*] J
M _@>5P>\L'!3X $QE /<OQ8 4P!.N4@\'#!!1_"D7-^ G02JR^+Z>C)&)>8/
M/"I\S=P(=8E;N<+E G0+-).K9\ Y_($+,F"GWM[ %Z8"X_E,"\ ">#E H"B0
M/G-S)<8 "  *+APV.<7?&R"8F NA;G&M<-WU.'<@Q+T (4U,@=;<W*\J!WVU
M<;:X#KCX])!<(^[#->@S8HNTSP:3P[#%WR_%/-!C:P&E8$D"37G/:&P^NW)(
M@::^F8_]'@N':9<@G .9(X8(Q.BIPQGXJP *!5SR/QGG5_(T.+M%?N'Q=&KF
MB$>(5IY_P&TS4&[@;;"8ZWSV9:Q-T4!7@-87,QT;E_LNW-O![%ZHRYI4T1CX
M,@;R,U^O@7K**W%YP>5".DK"K8!&!/2]RCQ@@U?HN;KUM^ 2P7H[N06##\S%
M'%CDA3D-?C>!-$"T7XQ?Y_P2@ &WRK%G'$O*!\)&0,$C_[4P2(4>H/CLB_$7
MX]F&!U$-6WBJT%] EX-W>4 T]H^^%3RCL5H &\+-.+;E*#PWP$D4G-M!:3+I
M@[+I,Z+)M,\&LP/1I %TGDP<(EX[B0<RXCH?7X$LG]P"<N2S!=!?Z8([F=U,
M4?QX$G),N[S N3Z*X +(,W?RUY$T/O5B,I- "#<&5(0YBJ&6?K"KR\&;X1TN
MH9;/X03@).8+6/0=OX.IL?I39150],A,S!PDI?.] A6ON#!63\%].48G)-SN
MW$2=GHY5?ZY_(G KO7S/\FZ-BH!#M%J= C8RKA?1^+V$:?V['A?7$W&+WTS&
MH&_]6S"^N@;-!S8.>YW,Q+SVO32/5(]!^9@[_RL8?$C\M5&(C&7L!+UC:,#?
MT*\*V#E&I:#4[AP; ]T"U"4Q75C0(>$ :L5M(I!MJL6\I2KXWZ['1I7X=34K
M*M=NH&<GX_G)+;P54-9Z=<:Q1^19!1AOU9H:^.G5D1K[*DVF6MD,A5&%^$C$
M)6]W[ YOE(MB["3.4E$K4!@(_&;N6'JET2O@C:BPE(KT"U"]@%VZ:SRS+^!^
MN+$P5W)RZZ"#NA.F7Y3D-YZJ\;68-" R0T:,6YF#XAJ&P>?9 B A ":_S&;7
M 8N 8M8TV2!+"0T/RJ.S/BR,/2,>S?ILD!_(G&S8);Z?\!Q8\^S:<=H"3849
M6%9()5M:83LW_0?[V9%'(P8G$L)H2A/X)Z9I2+@6D8!/-!5QFIB.>5ET/09'
M^]55D3!:B[^5JEJ##CQ%GP;G:(XX>N^Y5<(BI2,@$$X%50EE81+K.(V$!/HB
MNB,;@K:S(7XVLXM<7%]B ,]E0OSV>2]PX&0=#"4? _Z [.\W> D(5K>2HN8Z
MOYU^/EURG)Y0234C"6(!LYJFW+ 4\#H#_";26)5$#X?*J[,-4'GW_NT=<#DI
MC$+8H!0$6?/GO\W-=!-<G'TM''?MB_LL,YF*M(RDI8(KH<)$:A4+1J.,Q/SA
M6W^S"2$>L'60R'=L'7?^^1KDQD%Y/._E=0V?$9.'Q?;9XOT]RWW9?.T%4RX_
M/"A<$6V#^9>^$L\8WHM"BW\%914*%FS_8>8!>KR\)5K<7LG9)%@Z'BN&<0_8
M[G^;S;2*_B?7RY]-*H?V"H[=!\MV6FTOYS39BW?ZCOX92>):9U0=3QX8#GZ(
M[;4UW@MZ<*G+H%8MVO8A<L63\=>3R[$&>^I'Q[*3&%64Q$0R"JF0E.M(ID99
M'FHIM%U-0NAZ1)@1T !8*$(A*!%<6*(X)Y89PQ2<QI__!FK_Q<34607N?\ Z
MN$"6[^0-V$.H>.,X!SS<9:*)Q!#:?3CS:O"O/W[U<F.2Y^3')+T<F>1 GLSS
MP8=QO#Z,U9RQQ50LM%.='Y 9%ER*+^B$-5.PR\TUB%_G7< 'YQH;H_C@EZBC
MX97Y/C&5%VP"<AI^-]=S?^^Z#K^,'M7J_,]G9Q\K==YY7UVX:'P5V'J1XZG7
M&MTD&6!$;B'P\%8:YWA:S'/OTW"^C+=P"R#:R?_G;CG#!,2)"1@NX9.Y6)2#
M:3Z?_+_3X,SM$=G?K8N)W09ZAHEW.#M]LM#H.9E4+IG5M=C9;.YS]'+TR"/4
MY&V FW*;$5,@_$E0G<=R3\4R)2]XYT$UNX;#]ZYNH!AQX7[V0;KNXVWM_R%'
MC2O;%++%C:&OJ<7EFR%/QYG0C8.0:0SW"7[ 6\:%PP_8AZ</C.F!(H??-:Y]
M$4S1Z56(_!;/J_2U!5:,<S3V%WD#6M>SPH=(A,,AUZ&GM?NR6P]U2W\-ST7C
MI^[AXR,C\(+%9.X>X,6O0Y4J**%$<8ET=5/4 8WY96Y, .KH_+((C(NGMGH#
M^;?Y%U2/69XKOJ=H) *7*FX=N'$7>!1ZZ.N<6Z"U?T^R=:BD"\^ZJ-GA:8FX
M/G*R*%Q$TL 17CF2]?Y&:]$SBA=X+<"X3."%NQ8=?#C7:3(6<NPC-".X[(L!
MR>7ABW$C0$WOSH 7+)^.C@U0'XSS6UZ.T=A#L[(1:7(/0(X_6Q1E0-DZ9"U:
M *C=HF482;L +2Y7%+.IRZ);V@=JG*O%%?;G4:8,@S>0 S@\ !W)W,>24+NI
M#VG=7D$>@4Y@O[NEWZJ4^L@4#<*JA&:;A2P*O](K\8<ILWD;P"F#695'UONJ
MX0IX]NQJK%H ,-,OXWPV==J:NA33"P3WF9HO'/WYS5V)VS(<60<@FR_T6-P^
M'*#Z?[JCGY5/#;0/NUW-M$N0\E14<GL'XLFMC_M-?<^  O,O $<65]?S&DR%
MZ2FEBLO98@(\MHW^<,I.XL!+_[F8>G=()26"QFNV/-S%-->SKTLQ4'O;*]'R
M?VNL<-%,3[)KS*<*#AQ46>P50B2K,<0]*8O!@[7D@^>'W_66!^2(UX]X7GGB
M:6>>^$:H/R17W#WHN/+%5P_J83GCJW=_LWGC#=(\A(7>*^9/[A_TWS6'M9'A
M&RQ3?(,JQ_>@W+I7,)&L1A/WQ*T?RJSW 8!>P4;"Z[J[[E3N5Z#"GTTU_@]6
MW8'2A9CO3O2V*V>;6<ZR1!B<-4U3&PL=L1B^2)F)8Y6%#\W9/LSQ;$TN;5VQ
MXE;XL53)QHYA(&2<DN.,';.$4=OKMZ;(@MV'>0#CZ1=3&7K>&8#YE(L<S9F;
M2W0<+,!<\=J\;9LS+MFR:*KL7CU?70BHK&!1*C"CQZ#&BER/ FUD^=FKIQ-0
M1T'1A=/W'!%U^F7WX66>&]J6J+&YE$OX$E,=P"8)-$@PI]HZ20 LP+AL4W47
M;$[OR%$_,(GT"D9%CQ^,VD<F>Z^H5$2VL(.[6U07[1[5&U@$A1>:-"%4\91F
M6C.A*0]5FJ4Q8W%7L>XS9Q&;QSC[I.4:C*MLX[XSH('\QF !.AL4'_7%IW6B
M8Z:526W+YS5=3U5"TZ=N;TYNZI<Z@PW8#"8,!'HVF0C@86A+^W1L\07NNL"D
MUM*P]<DE>E$G;*,+8@8<Z.9R/#&EF\,GW"X]':MO],_W=YX8Y_MH/GZ9GW\W
MI)JYJ0V8U9Z6SB7XM'EOHV[R.L&MI:<-KEU.XCX-?G99[3Z=&%Y3E$X#W(T[
M)[MAQ7X)0XC@>$,$M=>N=-3<X7+YW/)>?FA[25L=3P+?\B3X 8<!O&CZUH1S
M\U3!]U5$;SOMMH^(KXITG#,=5 -/6<42B;O<*X\FI:-^56:/7V:VC[WVBNE'
M\18I_<D[BM\"CT%;%?-^?@?=\E69?7JW:!9:,IH(>''(*4D(XX)8$EO.HS3+
MXHZVR ^NN&1IG*8J@9W$C'(1\YA::X3281334*0'RHO9ISPOP0OB4LTNILXA
M>]H6VZ5$^N B)/[B<1$8D4^KI/9"3+QTQKSG2VQJ7WBW_#+L-U- X$7P92PJ
MO=_,+X%.?PQ^("^"5KV%2]!Q25W.Z,82KA^B%^[6&R/]R[PG^H?XQ?+=9<IR
MF:0]<3&C1BIVG:WLTHQSO]O_,?66G'UR V\&&!7VMI+OSA./48:9=**DC)]4
MED5>>K+!X)@T%]$$Q.P+<KX9)D64:P C9K[<9JO4IMRPRW[N?CO 'F W*C,N
MZO.H=Z3]5D0)F88Z5AU":9HM5_,[WM!<\AC]Z./K:Q][6%ZZCX55T+H63HN8
MSU:.?KFLS[@$IVN9_,JK$%Y83K ^RKAL+SE#NZ^*%;_]\+(.%1?5W=>S<9F@
MLO)JMQQ\Y=U;7UF0AZCX&E350R)W?K1*]W$_Y4YE] $!1QXHK$JL]9IBO31X
M:W[AW]16;)>Y]>-V>*%^UBGPB/)C.TCF5-<K5Z  "%D9Y_Z(G.E[X^NT?,P&
M3L> M,9XG*_ME+>-  \*5;MP50I-&.4&OIKV,7QWD"Z],GHBZJ5+]SNWL^\>
M/+^=47>GY#T,D'KE!$7)+D#JE/K;;CI4F?GE8&4<LY7AV95G'ZBMSVZ<$ $>
MY]D75F'[6&D[VE\7FI:W2G,IOHQG>:.(_(_I[&9:1?Y+&80<K5BRS))K^_*I
M2HU8IO9XK^9=2VSP8+@'],$Z:V&YB);MTC3 ;T01_&5S.GZ7;GN&YGRCK^19
MM1PPFEXY%R@:5\WQ06D862(9YU)2K:S4*5%9PK)4)YDAG0[K+:WCDCHY/]U2
MKQ&>=A1LE'T!1H^S?96$5,0B#6-%51@R'5JM8F6%232+.XHV8A(=<OLMA*A!
M@?CR&.#@)@VU,%D6AC'50G$=*TDXC76626(ZL"':)S@ZJIA*$#2SM.KDI5%7
M6A:"ZK\$R*3\-BB_]&1:Z2B--*.FAN(5G)4,N"KA!TG;47(C:\/QD+*:H'*C
M;:#:^<2*']]A73QFQ?VZ?/.;\L7GLY?F4_FFQI$8*1.K;4A#'=.,1,Q*H2,J
M2*REB5E' _T]'LE^MP(,)>*)C"4LGV9"R(@1U"F4U921I*-,:(_$MM^MA(S!
M>0"+%(10I:A,0XSQ1:"RQ"J-.YWX!V6;V[_8"REMS3PZC)+:*Q<I2G=14CN-
MAVTW/5HUP&' W"O!(LIV 7.G^;'MID/U5AE,@6,V!:HV3L'%V);1^TICOJW3
M)A=3NYA8X'0@I>]RQGF/!X8GT+,Q+@K0!II/7?&\_5Z%PFH?U=)6<$_J6D^9
M:-LP0[0Q5T7[>I>G+\I!6".W!_RMI8*XY[J$.7%A1KC@I2=2H/<0H06WN](O
M[\2I8%&I-  4_WJCE^\N2B]C\[K6:GUN;3-B"?("[*Y.U[N3HS_#LU_!HS_5
M=W]T-S?E9AJ1#/@)3X4"F@95@# B2*852% 3=F@S:Q[VU7)?O<B;Y;[.&%SU
M+YT&9_<3>DV9U\KT[SCCT283KV@8FJTL]IZ&W2_56QO E%%*LM20-.6<@CHE
M(LPTHIF5RK),9G>579=CB3]?&@,&@,^WK@82( (5'\4M.BG/IOK,[^J7Y0ZV
M3R38C\;?R_[KA)(&&,4\"P6+*)=:8(TCX)X0%J19W&'3.*WSF*"T/H)JJ<SU
MLPR[  4<PG "$#)64L(2R41(8C#^&&BX4L9W6!K/ U#HKL8VB-AWIVP<TP@S
M+*F[8O' +'8!:QDC^U2_H@%G&Z?49II;&QIJ$BD,B44J6&)5',>ZHZ_K T;4
M[VH0[;P[]"'1E,,>P5[E+!&AI#+2,@&,HJ1K6N0:AS\4:[F;BAY>+[63(72D
M#0&B7DG$$=M%_^^T[+;=E#ZX!<&!FA)$O;*.([X+Q#J-M&TW[:7SW?&W07C;
MI..V*_4>--W6KK?*U=<&P_E&U]QPA2F2INM+1X+P.&$D9-28A(< 3!-)0E*.
M7/W1N.+=#O?[J!(/V7(<\5AP'2D5 O+KF&L.HH$S"VH#:&&=,[,.(.8V>I6;
M.D$K5HX.W9D:.W>Q2WY8VDW]6/[>JF"B7EG<@&$[L)Q.N;#MID?K5#=4 3Y)
M%6"VSRK 8&L9X$JAGZON6S^WN\H$>U8%#H6 !RP$_+>3DX^?/MCQQ"PQ^I,I
MS/RO\/FO[*]__>O)R5[ZD_>J!8G)+ARS4R_<=M.!6E_N,_?S];@0%Q>YN7"2
ML93_I^VTSXHO;$K1;3P'WO'!ED]RJ-69F1ME1 EE,T8L34,C210JT#>D,F&H
MQ8.+9KI.1V2@II DT9K01&&3RP34#BTSS/^5BO3GM%Z.K$TU*INTV!F&Y5W6
M(FZ_;G1Q+ZNT07 M718]M;IU6/(VN*C;+&("H'#M(/S;BQ]K;KZ:F;?/"-1V
M&/<XF&@3H=Z#S/LPAXWOW$[G?1+#5^OP'KFSPB-AP&Z'V6^ 3;Q3QF>G=-EZ
ME\OS=_0..MYD4@;57#]3_+N<7>G^]IJ/[X/;"DRVE;9]#F#K5&N4G;L%MQ2:
MEFZ#<^&6$S-;EW0-^MPRF75U?F=T]_S.M>&BC_/>YJC2.P;R[K*0E>&SY7$'
MKK;J7JM*_[RZE.W#VO:,6^N-%3#G%N79KUZ>O6G+L[6QL9XI/1RHZTC]2.?]
MI_;<V">FC'N?OX=1*SW@)#N-&@8P7O%C4'[7PTH9>539B"FKFND/KKAPMBA
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
M1Y'2V1_,O9(NZ<:DR^T0ZP'F^&!SQ7-SL9B(?(+!FR]CN-K'V&I&-'>SH6?
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
MZE$?<+'+&D0@3D4YA<1-'OG#+.>2%/X$'0K,*B1=(N@(S^,&PQ!NP(B#'B@
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
MEX6"XT:3Z&I"[W+]724L+H?4Q75=H+@1AA]/<> PALE79A*?U0F(RRXVJ#O
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
M _8N:TI!SI17G5P]W"+[['"*X=_)B7M"+GSD-*7=\&Q=#E/SV/ >5GP^VJ%
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
MXC/+ UD[NT'ZCH]9B(ZN N3%-8O 'PV&H#0@M^J[#A\,W8'KN4-@<:QKC^S
MJV-L:[IT/P_(NJB6X$YH2S36FX41&:,XUE;'3%D4%J8Z^FXK-?=,?:MDL'SA
M4A?3<QQ7RYP/Y^)?ZBWQ+ZV V0_K_4Z5V%_S?$S/\S)]-WZF&DJJ_KU&DQP)
M37*_>O!S--^J-EOLA!&C_H--F"RK01?1+$V!AX$TN0)HPEZO)AXP>M@1@FO3
MB<V[;JJ$_$MW6,YZ5>C[^O[#F[=AFGVL#&S6V+#\8R%]0(MWE FDVY_6A#:
M1=;WR[[-^-BP+Q?#*4M?P&997/^"A?3?%30H7U^<9*XT%"<J%(0)B^9I2/K
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
M'AA9-D+"SU,T!PG%!<(C*B5HZ-'O',5Y2')4B<[25@6B=%\"[^8"$,R0A$1
MPLV.V9381XX6Q!*R1PU,CP@3.#IB;!.DBT=4E,D=A;!C421UJE3"2=M_P6RT
M1V":0 Y%C<,K,P^(!1[C(Q;2R8(V0BA U,.B&0@</V'(2V7.0>EADITKSJ3E
M$73TXR#P$TY)<3N-HU $X5&6@%H^2X1D(X6</&G:7HW/(('D"<%5XYCLS,E<
MV[LPA)&-C$%U2Q\)8GO7Z<=H3I*] FMAH%I0\ /) CFD<K]6R8*7]5$XSXG2
MG@(F;&ZPYM#M-2\=?NR"\/; H/T%D*G(F< .?O#0_)2NW__]]O6%-2IQ6,&A
M\R< (8-U[ALSP:5RM457)"2%(NLOD5WQYA1@ 3H:<\-(6:5P80#6G?A&K>!6
M;"Y]!&22_$^R1N(Q]. \V4.F8 A4 (( "(DH ,(4N'F(.EB +*.XQV/IHYZW
M0E(5!^36 A?811J2GU;%M0T.'X'K>]K^03GW03[[.M=Z"@$'237053NP84 B
MP;I$"@YR;7BC@@2\)V4(<D'<4HD*,]C59_@VQ<VBA,IT @$Q-TN$>J<])T<9
M$FLDD6%;:,7C.T&$Q0E"?8]8_DS_X36L!_F$<27D.6[M@R3U0[H0KW1%42E-
MGEH,*Q93\)WI%%5Z/#AR4P\,:;FL]!JGSW,;2XM(&;ML,ID1/4_1#HS)XS@&
M<^/BOW-O"SE0.'HF-4Q]#38VAEE4]+I;BP&K(?9<B"_&*RM(<X>4"/1R!ZCR
M,"' 2 RX))4SD;\#&-'N4:X-03H -=1''['U1BJDBW"!H 2*/6\&)_<E9%*5
M&'/@=CYPR1>@,C!AQPCCA\X=79@O[)=T \HH>H40-B] 8*LWEJQXJ0B2ZHG^
MFEAWEA0J&O*(1&SPWSS?$E#\!!E>"J>>!G,A=7E")LD$69(;J50]9/TD-GB2
M"#\:FJ8D]]0B=$"0/4HJO%K#I7%5NV%R/-6_$R .$%/25IU"28^2._+%5IB$
M$:U49D?(0R!M4E_-GWB#OF24E:B="Z6JN'2')2XL3$%K2AJILE**Q=PKLP!E
M4"J3&3%@BG8<290)H"M+=.)2'HPW[W]3#HS"O)C&X439OZ57TW+PY<NW7EF:
M@"C[JJSI*4M4L@40TD3\1!F*J-0I\ICP3.'OTV.(HD8M#=X*!H2OO%^%;1:F
M4C$4VG?^A$OCG?HHK!8FI+\&"S(3*(N%$BN!@X$=G6A)IJ7L3S@=#D(1%3\1
MVW#G8#AGX9@\0\C1@ADY$G48@64[2R;;:VIM,D=-,D?_W),YRND2BQD=Y5!W
MF]9QN+2.]:[51Z7G"A)&<RU^(D8.'$<P$XP)"A4&& 9832"B2"'+?5[R5C!.
MV!=09K60YN=)_#1!#5YD3)(<0*Z2%@Q,<DX195!"W?,HU?T!W?2KEJAQ1+@G
MF944+&F2:,N)0F'BH.KXQ%+C1_/24H':3N4OO N^L?.4.E:;<+B@Q8D[_\9
M*01#4*EVM O%1J5)7M6/! \6S-]5/)4V5^Q29L"+8 "Y<+)B*S5Y@,]:]+[M
M;A6R-A["( /K#SZK$YGGNO)L$LRB ):/KKPEZI80TI0A^H2(F@(P]:=6=*OB
MU4H+*3"1GE2W'AE8UY#<Y^A:*EU_J8$<S&5,%A(>+=Q-\51BR,"MR( N-$TF
MO&!)IMSM0D@K2.3X,)N(EW._>&8JM4C]NM):Q\**$I4FI&< "LA$#"3FRR49
MM NXH:-&CBX4NX2UZ$[L$OPZ=<19]A(LT&1'8;)=(LIN@<V")KO%SPGY](45
M7];C-5CEQP[;+9&T@K0T0(#7/J;"3JN A=Z\?YIXL_7[RQCDEWC6(LO2H5/2
M&A<*< J\VN\.UQJ8MQC$P52A2ZGUY,XG^3WIWQFM5!J%P/T!;^ L@S!)L6]Q
M1W["8%6N^-^^>9]K_D*\4+X%P 06^6^2K](QBF##RXV(S2G?)BD"P_I;15S*
MB#"ND(=XPDF8/I;$SD,,5BSH19%/^(7P5K0@68H4=CKOSRMI.ODE(F$FSXK1
MKY;6@0@VPS>BQ3@N3NBU2$@BO*+<^WAGE/OI@$O-$F4]%_?+:Z6WC@(QBR]=
M""FG<KD++FS@T!@'0C231C*YS/'AOA)=\-9(96$Q[U\SR@):7'YIC6&.,G(1
M?^3I#:6?-4]ZPIZTE"9R<\?)9T"="Q40 2PC="#/*1/X .H/YJW0*D H109S
MTS@1?%7S1A%K7=Q]FK\1J]A R^YH7(]-*6$%L7!<6CUR=?1AYL6\+$GF^ .M
M+A794FJ#B*D,W5@(07AX1UFH0(L4 'J4R*M0KK@5#%(* XJ 8!U9D/-8NLL2
MY32/=;'IJ;7EUF7%Z@PUXMZW*O$PBU@28;;@EQ"T= PS:"=/42#R/*/3 .C8
M""D&(?,?7H0O07T8,S2U!;V^X)</ET)NYQES"*,TQ5A6ZJ&7$7X3-PDK?A:!
M3G\!&F_$"[[SZ>\YUXF0T;WLP,O@;7)%>" 8G,IUO#&5$.6!9^DNTK-S</%R
M=2FPOHNQ\.F'(HQ2^/$I BAS^LB]E,?FZ=7XL^?QJ?!)J^Q V!)\!#Q6.5\8
M,E-),0$0^B-YKL,\>DC.+%S32^%Z"W%S,@QK"*_2XC8S]IF+H+7/X749BB.I
M L\2'9^S2JIESNJ)'E>Q\?UBV'TXD3BN$"CG874O+Y.6K.=-R7Y62K^2S_^<
M^3(Z2W(7\%@JK&!F?X9'2S(7"BI+03$4(0\I#S =K9.G*7IY D_*-2<-<*;(
ME^6W^#O\0[]H@,77,.VPQ!.+-!2A+RL^O>=T'I1F[)\4]2A#+I>">7**;/M0
M<"#8SJ?+^TO#CZ-(>O[)?T&I/R%<7UMF!E*/FD3@5<HU)XPH#RR/"'!Z5JZ;
M_IV8@N;WFXDU:'#1UBT2_]PY7*7!./<F)F'Z68B_E)X9B+.<I06\%=U>UJD_
MT\=Y*N.VPC,,*WK";$\1>A"Z'3YEJ4*0%\WI7F929#HZXM:^BLQ_H-HD6[*\
MC+S+_C]%!O)",ITF*47P5TB1(!(9(]F,JL)%VH@H&#^N!OJ6(\95U,\_*5$2
M51N>$"]$DC=$R%;DE%6RA'+]4*9-LKE\0)[H0EG E(Z2/V#I><GJO"+%0#R+
M/21<9!'\JH<\@4E^07G%4A5IYQ-1K%JQY1PR'_S0-R9Q)NO\)_/:)=(+M1AJ
M29!BVGHQ% 9Q@*D5(L-!*9.G3!1Q%83Z11Q<X(N4N+Q[_RF7EU(EE)G^<)'N
MKH$'4^P&'D[O).-?.;LK4D,F'Q6\F?1W>N14C+31K&?Q/6Y.VRV%AKD D_")
MH_> +E71DHG,=8GH7LJ[M)4)1TH$9MD(LG191"X,,!2X.'PFDXIIRRH_L/6>
M[\-[/FB]YZWW_$C>\S>E?B>"/72DIEQA0:+@I<K54$Q(<U'$O1,:(%:PJ5RL
M(M<()T'$5)\5J2]2]K<,@]LO-6ZFDA)EUBUQ,<P/+'@>+3[_5>E>Y6(?\O\K
MH= 1*DV8B2BNU$[GN8Q\DJDV_"N&V%,N,_4G\C6:SZ"X1%3U4 @15H>)C$F1
MP"ONP[<5>0,@"!"6(#0]D+_:8S\HF.52@6$X%804.1>07_O\:P5T,IJ<Y6%1
ME=RHPV'!!JC(DD"L&51,E?3 TEGNN%&%:N73G^NR%?9""E#EN<+S($RD?+@<
M]@"5*<A)20:6LJ7SJO]")Q"K*J3G0=S[*H4"WJ'"+VK_TG]4I1<E]NF\,)&4
MU 2R>H7_I4Y2&W?Z&V1.0:)B) M):2+\@I:;H">"@>HV45JL*+_A4B\M>;?3
M1S@94)W\XFB#$+LVB-A87I:@FPB;^;V5^B[R'D$CDSDD-,208"<UB/U[GT56
M(,]Y%ZFUNJ*FE+*$PA-)1LZZ]6<%$"$WA,0]>%(PBV#/0:Z/+;[%4'$/H;R6
MCUR9RR7$DH!&S%)GOAC_*]4<T?%KCR[B/9I14B%#LCNU4Q<A%3I**@(0F8.B
MZY12^:I/%Z1,NZ.)SNA4RF\6F4\"2?,O<^163ZY@^<*%"VHPIK*)MEC7.B[=
MJ[332EJ;R$(%! 1C &[#%=Y2-N;^K7_E%T8&I7"BQ"8?J9B,\E=5UG1:TO9%
M5NH2!%NAV(L"$1%6%" ,Q]*%F);%M$1\DKM E&$BG#8H #FZU294;1FFJ@:N
M#'NOY+8EY]M$8CEJ<]-R38GVQ@[I!"B17('A.-<*X+3?0W@GR[&U[>:F)25%
MH3C/^ZQE5;6D4[2$ Q2DT:%RHP\S1A/(>2H$;7$5S1]%I,(M =/)TE+"_!?9
MH<Y=6 ZBY21>7"8J'!34E$G)V.FG5/ JK%+,A3]V3*O %X#Q6S3BWU+0XXIP
M2B50:N:F<,?QF@ )L5KI?0'M1[!9X%6(@;@>2I7."-I"V2' >&'BS<8X],S3
MROG@"!X>1&!'W)6;WH3!H!]1.<]:5%;ZGESB$H25V_LTE11+N8;DM!2NZNIJ
M.NL]!#IE4H ":^5$!GOAN1 AK "M<RYAB?[LR4,H]*%<G@FR5[IU<6947C;1
MOT''G1[@*7-B32;D."ETY-QIXFNAF(6@B9#]8EW8C2G.ZN#XL<X9G5\GI$PH
MA97@E#,%^2+O9#91NB9N6^3QH5I$VDT0Q4]Y95"6"D:5!T K7ODT$_Y# I[8
M<Q%>D<@I&+SV;-3 ,?S(BWV7WRQ4(WJQOA*2_61,:)>K" H3 <1"]<AWFZB^
M7G7ZARCCGDNFC&]06EC!I378U_1_*)TN+T,%W=I+@)!73%>@(0.#Q=O5%HN"
M<XE"83ZP6??DYK[98/M#)Y\45>/+$E]:(/FP8+E5Q6()"BL)+A\@J721DBJ4
MX<YEXFRN(>4K#^ VR7;R@K=%=J2_6[Q5IYF:EPN'=40>6[S'HW*5RMGGL0,*
M5>B[1Q]*4;*J"'XB*HH\)DJZJG:.[MVL9USYHJM<NIP,+_!+A'A4G#V7LS[W
M4!M/-3.(RE/Q15J[5CVM*L'JV0D>A"8_I$I5D&"'R*\L7<5Z /(J,R)6U<JR
M)7=Q#%@>D(><X!8,])/[HZA5C*FRIHB/I;+$4G13D6A;H&Q'%>;(\O=)40TD
M'?!DXWNJG*.$$QI>+6AF5,I0T$XJZWH*"L(UZ 57L)HBG*9T^=:5NP=7[K!U
MY;:NW".Y<M<J]=0Z5):@HP8 )C)1?"5P^+$F^IQJMWK:K5)JE5K*Q+FM)"2I
M]YG:AA;J\+T6,'NBA#T5VRWBK \SL/61NQ><5G/^E1LP)$5EER@/T=:7>\4R
M8I)"VF,&1Z02C1[0VA/!N(*IYKE+=<\J%P!1AIRHO)< $GL66UOA:$J0\9/W
M.5?\:+-4QZRZ(:GDUY+G (53V5&$Z2NY)E%[>*648[B0MJU+E/(>Y.JS^53&
MTJFZ=(L%R]0=S6P _2@+L2>-B+?R\32*Y\6F\ 5X\N38U=8EFL+4'BH=A"KQ
M*<7K*20/)Q-PD2<H<Z%ES=[Z]><V30D_/Q1:AP03X')**^]04#E#G:Q3F"U*
MSY8%>.04E9:GKL%D6#%5UOG4G<)*2^OW3SJO."@1T=4Q0GM^KD+HT0\X()=8
MDY9BEU^&,1"7JZI_OZ*8+Y@/J7PF&G[Y<]FR-50>WD'?R/+S582V9 VYRB=Z
M\H.^CQRBE,M(265N"D=-G58*WR>L2>8Y5D"R^=+UI="O10BA=DN*@HI&T564
MTP(^^78,U4^KE"RO2%G#KDH60>TF$&LDL2V!:0&M:"Y7H5J8J7,F/X_H>Z5A
MT79P8T"+XYFP>A1\Z#%Y(&**#HYXED;S4LFE?!KFQ"=I@1D?'\M KRFD47ED
MI0<*VIW,.WJ@9[I ZSFE87Q02)!EXJ/,KB>DB-))X="!M.QP6 *R' ;B=,-B
MFW^J>A'U-&JLD_?]5E\K)E1JDS85\;@@Y[:Y6Y/Z/$Z(H>EQO9AH&@TI,EPH
M?R_+(JX: H83N'^F'-SI3!CK/%FN,4B6>NP<?6K*\)%]7<B3DC]E^),H="V,
M=S@GRAW[YRP)4U^ J>2UE1U82F9BGCQ9M*=1U4Y82ZLE\@'31X>)< R /(P3
M=.=HJ9$E)0<SRRB/&\];7$0DCWU>E*=6),I248BLZ-6:9A3-.K0^!#+HFZM@
M)'/4JWR.]>!($/BTPN^HO+V^;,E><N'EN*\!4MB^\!3B%:)%1M%O4T_X)@:C
MEX&!-0YJTV<@V0MTY%Q00M.C$+4&.7UD_9'PR2XN65!L[MX5SC9LZ%28O*62
M0>48U?M2E4Q_S'<56?/B_%8\B717G]P*C^3O<'F1$*'Z>5#4/N\G0TZT4A8Z
M3D(2''/"1'^:("'V[,F,YQ09H4Q%Q>)GZ2C":"BFB@+EBDB9/(92JY0\7HQ]
M/Q08$55FE!Q)OBIX"!*M%%0YKKRNPXZ)7TYZ2_*PO:^'$"=,U G"G<+] 50E
MXHJ+R0O4\T[EHL84$:NAE7R,CBI E.*AE+,AW@";U-&D:$Y6R%ZUL(JR7_3+
MI"XL6@,9Y)]E3[J,2&AE,[3K(O>O)/!SBT-S8<$:<'B0KMEB/J*6(<W$AG)?
M?BW!5HY$-:4A9,CIGNYP^80#:DAP3("5*W45?\UG)&&XQ"T5<6EZY7*")=BH
M9R@A+EOY*&<__\I4=$ +,);YH)RQ)-SKQ*^DYQ1;J40B=[$80J5UV2I)Y8Q[
MCQ.J L;6QH7V7<B#?+&PJ1D%N3']HGZ#N@V*M7 IQ7^5@[^JPY923>B8M?-!
MEEH/^"HF%+D E:0L.@Z,C!:Y^DI/IIBB3*Q7J;8%^Z+J@*=2(H[0Z7,]+,_+
MR;F Z$642>4KXE\E)Z)>I7F/L'Q'HDR2W+-2&=/.E%"K2/MG*EXKB:DD&*3'
M."JX0*8U.I825\D@M=<*L,M%8#HW*93,0&;2BLE<B4CYP4(:KO[ 8&:!-=5$
MG")=HF J]2&W*NA=C@]-%V'^)U]T?_Q;R[R 5_^,;G%@.!$AA*;8HM@L(S>E
M8E27?UF1RT+DRF0@_47:6Y2V6"C98@=XBK)E*#E@BJRB LK"C!?YUAK$F?@I
M[U%3$@RD=5#55$&RJN2KCAE3_*T<@93QQ@,T:)L+[N;^4W8E40/S0%7WT5AU
M13^>6]&$,S)4GZ)[Z8@H\JQ@7^3"%RK^(MK*!^(K@<JCB*,,4_Q#IDB43KR3
M-R FD@C'JDBQB(;Y"NK5;J<RZ*3.HZ31*3Z 7E/@%B6U>6>-_U!3G,\SH#!:
M'5#8PR#F4D!A=<"@)MSP[!A"*6#1!A1.%U!X9@>^VKYSAVN]MQSBE1U\I$8%
M?X@JEYM5C0H.,V,$->\8C40RA>@H9:9]*OLY<MUH!T.!_;++2C8;""0H6/PD
MB,<+,KIU]V%!F\T'*G&2G<<"?:'W8. 3V7^^YNK@'O'SKX;<>BXMB$N![I7Q
M"X02<=JGA.&4'R685HP,JKX<MHGH_7]_L!JS$&?M2B0/UQ9B4*)M];1JUU99
MT%J1NH*Y;D&F&\X\:LQ)_65Q^-()$7OEF2T_GS)K_>'5"]*O0<L#=IF^/+<C
MV60A]KG2#DJQ;_% &K.0<\:,;HL9+68L8L:/TO'<8D>+'8O8\=.98L<1-"]I
MQO3LGY:Y-FS3 <NRB\/8>[W=#J\VV?(5M6X^ZI$HF^V9>STL,>]ID3L<R(]'
M/0R=HJGN*-_ZZ/A;MT8=>]!KD?%[7F1+,=MLW38[W;[94LSWO,B68K;9^@NK
M8P[/4L;LL-GCNM2^)Z([["*;13&]R^/Z>TY(+S]MN-$CVX1[V^#O5.(K<C=/
M=:8GIOKFT?/^[">S,[)/I@U^A^?ZG:"5U1EBSE"+5M_'ZX^$5B^&HX8AU3EI
MV"U>'@PO!Y?]9IWJ-Z3)'EFA_UV?P#SE"0:MV)%#4&=A<9[%(AME%O?ZEX-S
MQ*,=MKHI+VG4/EMZ:1B]#"^M<\2CEEZ^FT4>CEY:X+:+/ ,TW2F>=GG</.$V
M.E"UJ0Z9M__#J_<+8P1.==R-R?344? YN98G91,'2Q)=&INP!R=3 )N(.DU<
M4XO.FZ/SL#MLT;G9:VK1>4-T?M'KG\R9=5CUY60!FI8>SIH>+NTS0)QOV(AQ
M<-='-O!DURXQA5SK-]$,/'@V1$[%9K#OBQ_C2*.-NKA\'UG/S011WSE92L;Y
MHOOYKKRA6-@2ZEH0C8:-\:6<#[J?[\H;BH4MH:ZW)+K=QE@2I]"I&V-_M\3>
M4&.^091Z^>UHOT=V#>0?_P*_8.N_XL>]-6:L]!-YQS-#[UZQSQ?^\*HT*QK'
M1*;X*C$5X9&K4;0XI'NQ^:-JZNP;/UJ7EC$.HXA:D<.]O<ON3QU##'H4K91%
MS^LDX>D4YW;@.(4DA"MIFKKH]ZMU_'9YA,-/1+-]^1KL4BQ6]\12PQ>MM./)
M0TSS!3C[3/,!9N/21 "?C\7TFF(E3+R3/<3U;7:?"U*<@2 &(P9QG,$N)YF8
M7$"##.+ L$R;&F?BOW0AS7RLZ:Q9^JJ+(U?2J6B/'<T/L_;[$,<Q_(U-9C@Q
M('_QDYBC10WAU61*.(W?6.0_P;\?6/*Y8UQ?X7=BS7C;I5'J@%I/C/HX9*9-
M?PF8!V^1W=E5&VI]D 0<)"U)3.7&7P0H]5';Y0[8AN%</&$+['RL),X#F8A&
MVF)$SP7-GI\F,3:B5O-_\F&<'3GX%?@772>0D9[1R1'1B]-,C(6(B[&@U$=:
MS3$0 T+YUVF8R-[]."!'-H(O)G^*57GR$M4@'9N'BD[B,?:SQ;:GJEM[@K.
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
M/DPWF$TY0'<]!S OAYMQ@$&#.8!=O%L4UXCWXV'["#5"G\XSZ-O6H;2*NH@
M)=%K) YGE&9%"; H)Z?KL(/'I+SU"9 HH&&90Q!A[\0;*K2M5\1O0]OI'.X?
MPT;\, @EA=&RPC%53)6J4[<G.0T"SR6^P;.(CQFA_W]_0!F>@'8/&_R0Q![
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
M+:Y[B3V[DRU0-Q!IO5TK!I*M-VR+S\4G.#LW]N>OX-_';!R]^O]02P,$%
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
M$[CDK,+K;,A_4/LGL_\S8F'_3\S^C=C_X+4(X('0_@8/1 1 @.NOL9QYZ/]
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
M,G!!/W-)F, W%$@_^TH?9W.G%O]O-DL'?WRJTG/<>ZJ1\NQ[D3=NX70.9M
MDF"&MYUD?[;&C99:HX9_PHHQA!LUW.68A*##L1%7[@@5.*.WVFJ?1>45W].@
M\C@'[T>;(1]M?G4QD/FRRU/$G^%@L[+GOQV@G^3S-SQXV=?.:H+N:R[**-/A
MQW3?L"5+] "DP)0> -A\R-DKF.5=97U35)^D:"G:2;4+?H>6F/+& \ %WM0N
M;:6C^)-D7U&(BCT%!:;UD7N,D1D] '_.Y^\G*5), ]EFF)-#+U]TX5G+&#V'
MW2;/4=RPK%8XY##7C(_3_AH#E]J^?@!J@PM:QA<_]X%TD&RY40=%(]3N?G6A
MOD+B:PP%B/MK$1F57Z='__X"5;V?PNE8-Q\<I'F2[TSP (A*W.YO:X?5Q 1S
M^[J8BE.8-I_CJM[KG_D<\/RM_E\O[]N9'H!??6+-?$F8=U\V4F2?V \SK*1P
M&"(@_*G;5^\MWM^8[+_*?J28$*E\LV XA2)Y !P-,6\DEGN<D%I]A[:JR4OC
MIQ*=<$%MB)SVNME1'P/Q ]!MBJC2TU?0K!O<7$I23=NT_"JW<LZ>6+#CE5O'
M:V'7QTDC?G+PQA4&A)A<?[>8<&[8)[(K>Q391,"ZA#^23*RB\6E!C>Y82Q!M
M#S.PZH8_+)CC'4Y??.^->\/Y#$?S1%9(_KPCM5=#^J(FJT&?"97L!"-45)^;
M\CE-\!]BL;>#@X,;TU"+%+OB!9FJ>%=:=P&?-^FK*E9/C8NLC)I J1Z=9Q5G
M+Z@R\W>H@V-*AFU+!IXV_/6K'=KD\F[SC<3WVJ2J'JK)J)5ZAN YF"@-C=OB
MK3HRQ0J)C-1AZR!X*+V9*-YWK[V3X7'\%[E@6Y8U9% *J7T75MUQIFZH8K;=
MFW3%$<SU 'S3G[N/<=S9^5MP.8%J(?A6; [SL3-4(Y6R?<'#]7$RWA]V_:[J
ML98D*G/+ ;=BE9*=N=:PXF6/459\ZNA?=A"_2&TMB G0\[=O;VP^%NE$DH;A
MJ_1L'HBP,&T&YE^.SZA8;% /'//5(V^M9YZ</S;4F18V@K$E)#T]_!01'](:
M&^LV'18PFYB_MC38SM%387P8]6S&1;_!'AOD^:VV7F[M7!HT_=J,X8=&4^,L
MN'_0:_87+#+U6F?*(&CBW;U]T*;/MBOX]^*G)$W88^1L"1DLKOX!H%7T8\@L
MWLM=$'K&ON\PI+H9]*R*8Z.DB?X[7.K[,!_YGLN3(=/]M7C&,,&\NK6#02N
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
MFS"\5R-"JLQ,3;U:G=+#F-R':XJQQ=+/.*JY'6FHC@W#/&^R;@,*C*+-S!X
M^V?Q$7XO6&EJ9;YYG,&JVX5\GZ*6NCP6EM#N"IU_V]=SQ#>#__9'Z!A)U82.
MN^O'APE8=>PP@DP;:%%N\.YK7:;SJQKH='Z-$8J_1Y9UKNU1E9EF\3!;PK%!
M4XZ$-;B#*3U*1V5-R5.6 >4!9Z!$V9DAS5)5->2WDT85QOW7MC1+EG+\!A%S
M#,;[JX^.5SL\FTS&XJQ]W)OO_J3@;Q"$I@S2#\0N-X7Q./FN-<8P1XI@IQ1$
MZ(/R $]2,]Y OQOQG3K'7)+*M[K:*24LRT/SXC?%+^VFZP@[J:_5$?Q1A[>:
MQ]L&4_4;Q!;I:E:*,T/B+H7+H7+7<TJ%]M1:,6S#N]0NQ6GFHE?Q1!BK?OUN
MYY"L*DD:T&FUT2H7O81NZC,V8Z-7973R] V_?:.Z\-=_1_A;U)4]0^Y!BW<$
M"O$HJWK?*@?-)__6\-QJKY^^)5G/UM,WU]:9X.5H-\#?EE;D55'XO7KK8<%S
M8^;(X1,EW"N-QM>3=+-I^ "\*7E7,Q(\-*3=&U> I;!;FW9P\W-_7_(JY.)Y
M/2$\V_V4ML?FVW:.6#/D1JL]K^@2@U17B2F"5%<.\R]H_V/GNO^?5:)_&]7]
M_P"9\KY!;<-,I>?"UD) 8*U,6P#E$5&H9?)3@68O%AB9?W,(:<B@P;'87<">
MY36&,-JR(5UIH/IQ562^E[5'J=83%YNG(S7SRZI$ [HMUBPG(O-SJ:CG-[VS
MBP/Q4_(3E?P'6C\D')[PQ^,Q#,>QO.W_V2\Q'N((G&6#C6OFSC;;)S?]7+)B
M(WTM6)+?!1L"]^E8+7 7!H7V*>=SIYV#:B^NP,\O;:VW1.4& $0&[1<"Q]D8
MT7S9S[30T2)1GZ+LXQXQ:,4XI3,>,G$&;K+R $0&.E2BNA'&<V=+7$Q)-_RJ
MIX=DU.3Q1PZ=XWYN84^]JX7DZ)>J]AK]V3-%\\M4D8N*30&LVDQ4KPHW=8Q.
M5.3-4F]-CJV?(ZM+W&WD'C%.5=>V[*9LSI;T:!/#XJ0IONY]*&NV.3E4R"'7
M7_^;3<HJ-60IZ[ K7@OAO^]3*<([K.? /K_(#]DQ<T&>SPE)96J;)DE\29^6
MU*W?#P Y;MJS#0%TY!-/O"1NH^E?OC>U%C6?YXX'M%ECU^_YU/P(&M9BA(=]
MJUTI7EJ3"@YO5N2RH?C"DX9J9-E^H\H12M^23'Z=[4L)E1MG0/'E1CJOAM\W
M#3.,A<JP]-YS3DKSX[>UKDPM%?=&<C;*LQ;/XR&PB\ZPZLZTH^EI9\]5/>]$
M3[;46YJ<#6N:XVFYK$\%,6E!T[.0/BK7_+E;$O9T%[*9O3WBJW?#_!^K[I/8
MW>?%$1S%KO9B]US-'0M5.]"@]*^3@?/\(Z/?ORW5^%Z. F*]P9+'EU$BPE,-
M 0M6;;Y*G;%2:E]EC:WR:Z-5]%F.*X*ID18Q\->0"[9;'WXLZ?FA>G>5G,\I
MH:^O#,G@^"YGD/C)$:AR1;D?%..Y]52^,15DDDV"*<NWL$LR!@E+ L>>'0@&
M2:DWU*9I^SUYSCM'?!7K+<C%IN BHQ7L^,H_(C#A1F?U46Y,P>.%&[Z/ND0Y
M'S)"-N#M+;"H=N'5!$5X;@R[7G*3,MX#,"="] #\J6<2FN^P"<"'0J*]0+,.
M\-  YQ<##X R[N7U2<="B3:YY2,^]D5]V%OV9HFC4V?PB;Q%F>*R_=\WI]R_
M)LQ_U&RK_]/(S!/052+]_P9# ?@1KAK,$:I5Z%"QLFL(=1^I47\;?44<@9^\
MEK3&D.UYI@.665\A?#G%;^&BV-MT7:]))8_9^[2@PH9N00DL3;0[:OT =#\*
M<2USS)34CCV7D911V(6QA7$R>1$_!9*-<78*.QP/[?/P9*24.QI_'?&^/=\?
M7LJZ_/ C0WQ659$39*\/"D\5E(16Y?FR]%P_B;,K42Q>T&B<B+Y=J)K(45SY
MA"B3@"1XUNM@@:.D!1S6[[0-6Z;,"QJG;=2@H_H&G$6/&K( VK>=/R_*/!\
MPAY;>+:IF5J10P-E?@R"T46>DI'H=W9_8VD>GGF 7)31=+WIX)M4L<E#S1''
MO->#"LVR\\*^=7)1O5!G Q\2-5P5#[*?-D"J];M.C_D4TY<Z8 D$(5Y3M*4&
M%%]K6[-U:LMA/0=#^=5S4NFG+(7T,P1)ZZ-OAE]$PH_Z%K-OL=6<'*K6]-/"
M)+A#;XX##/64 .OJ"&)4N_9CG*+3U3YG/",:[\KXFQ\>&<P5"RBK1X1DYDXF
M0;V-W><"?O9Y?GK-NT^D(%8JNG.SK;B< &S\-YD930?)/@5^CZ:?<!32W>D,
MM\W: H53M&<A1#WZXV9I?MCM(JX"1'Z\[6W$8^,"G@)3B?\!:6B<N49!K>WO
M,7\YL^K4]M@2_P1K;LJ[3D-W[ N2N__W,]HXA!-/@G87]"[B8[#+S&RN&P97
M\Y-M^WG.P36;E-G&TG^J(?^% #TL_#=02P,$%     @ LX"J6/CGT3G#"@
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
MR\_!C'))"#L@ ?LU+S#ZU'^KLZ5>/T#WC/6\WN7@K\M__B]02P,$%     @
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
M??$A-^6-DS5;:2&I:?41P&ECL)9AJA$I :PCVY;*<A?>(%.)50V]%J4E^H^
M3[.16D9F21BGE@V*D:1^<T)U%#6WT\=17;N/@%0[H[4=2W5")='4C0J6?JB9
M[MNS;E(94AVYC:_UJ&IYMU]K@55Q4^"AJ]-]Z6H-BW62H8T6H\HV'P&DU<9J
M&:5*@517([D$T^AH>OU%E+*)>05U\4&73R93=;%VNE NG$Y<16C^/O=*=*K)
MM<@LDG\$5!I-U#(BB[*X=?A(F8H4WN]IDWAJFI@2SU*3CX#,2E.UGWB6Y''J
M7C3].;[LW:?%[<*U&E6>D<PW>G\PW<I<C0+55B*G7GSQ#2 L-!WA2\06\:L3
M1],H#3DJ0-2..#F17$'\_B!9RSR-0K%*DAB"G]V8S^]G@,)S( ^1S$7&H0J/
M9J+8J#JB]X<U*W,TBC&=!$F1TI'K74PWYF9O'-=<^+)E<YO;B97-WQ]2=S1A
MHQBN+YOE%<ON;U-J<&/-#KN<]BN5BX=47=OA7=.=SNSP-CE<MRNN[<.Q?'9$
M;#0=4\BX^A' L'\1O:K\'CUC-$6>.-85/4F19X,#Y'%5TO=J74).&W1R>';_
M[SIK\4:W5(P;+*]K+5VE5$&5O<--1=7EI1 *VQ-;A0HW.6Q8I7>SJ5@XM=LT
M%? :8<1FT)=+;AU"E41%K!:(W'.NE3I&W^HX.'498RKD;X3^(<K0Q(-,5%,F
M8/6=SPH4@4#K:9LV1<>;VSB,@QK*VL'"S-"Q6R?DZ]B?BFO/.R+/S,*D]B8)
M-LF(;/2(47BV M1G'<ZL5_-%0-80QG*J5]*I-I&X#R0$0?9[46Z\(^'O,!1Y
M,L\E_H3%J_8:[R<Y!]9</UM$H3"8 F'S3X<G)T?2[N*3K8Q>)=_EDF>O=QS
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
MO8"A#1_4<E=L>(&5DB-S@S#IAN>(SJXSD;CB&]%LF2Z9SF!^RVVJ?+,4Q[#
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
MU=&;MT?OWOSXG*^^8T4DCPV<5.+/'7GVF][\\LLO/]&GM2@VE"A,US\;OST
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
M5P=E'C8RIH$TGQ&]R:F\-84=J<4&L;DE&2'1NSY!_"7.5CEXP%;(ESL\F,I
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
M^(S]:.Z9(\:%GKP<E^4MJ^#<EHWHZ2*P+#^"F#X,"V!QA2#->VS#M"721.:
M->JU R*T;%RMK--0?C<#[-M#JE9%(VY6MP$;WE8Y)&VN4D84?;RUM$K/7F%K
MV+Z*=:*33S<W9Y<+,+^]/5O<!FY4U=4E [&Z*16*2O$<M@']*WQ,EFN8?X2"
M2TO$#]F/Y1\ZHE?LRQ6V':LJO'+"4?49?"Z_"3SPDM0&TKW#-CC;,DU4:BIT
M%#ARFU?+K,97]Z?)>H>_I<.T_&I7Y$6<KI+T@<-23VWV@JRU'1'?L[2NE+!W
MJ^*,K;6(/9G.L=B^H$'.-=DFIJ61)G,GCERKOK-VAKJ'<X\ ?K-'\!>F>12S
M)')+M-F@"M4 ->KJ*P:[I*\_'MH#C14DI>P4[SC.DZ59.Z;65;=B,MUA(H&Z
MI .U8%*G/>@OL171?R9/9PU0]&0V0IJ:R6(3!CR> E)':;'DKKT!]DV%V%?4
M5@T$;KMVRC.Z [51Y^D33+'9E[^A[+?S]#I#2YCG\W1U$W_Y&&-<)_&:/REB
MI</>I:&.(\.M2N:%V*8>57PVLQ'A3V!3?008.N +EB>Y.;:E1EBNVJ$"]:RT
M-C6-5)N4G! ,O2XI6'ETQB);@JAE9^!O#(E,GJ*3X+56><W85*QG# /0@.L?
M)[330-> A?/%TN?LO0B>.Y)-ZM&54R+#*NITY:/RJW)A?2)3R/(*0@;OM(WN
MCE@3R?J:'@6PF$%;F!4O9-].@7E$MBQLR;8J<I97F$/ 0H.]#B,-1YA;E,H5
M^&:N5%0PL1!=H/3AZ")Y@BNPP(82<E*'+HM-Y'2]#0Y0KXIJL\E L<FO/J ;
MA7''NV1-AC6X3-6?YQO<17TJ]^T+FPTK'?;:#'4<>6=5,E?FF3I3<<_,1E0]
M8WTUN*;'*YJ2$VFP[*"!>M9<FXI&JDTR]L-BV ;P$LHVL-BHZ)K ELI0;:"@
M7%Y&]X8.>S6%31-1)47)6(O, !8BYYSFR^5NLRLI>@JW&5PFY7'DJ9QULD*,
M26,I1YJNM6QH&C678P/4Z[C?QJ$K2MFHOQ*= 2HL0NS7@$K%H'\(: ;?\L@A
MOOUE:U.CIUV,5H'<;!.UA@1,*%I<+>87;&_B%+8FBB J?/^MS8?=W8:>*F:
MO=#FFZ!;NY^G73G:;<[=&@K)\O4:?2'WU;Y'V2G:W17WNS7N=I#+:?(;N(3)
MDR"QCIU2%24,E5S!:E4V9QR;>E-"W,Q(5,N!>Y0!^+R%2](S7&9PE11@C3"6
M0G/##ABH;[5QM#+2;=&N'Q9'823-\7J1Q'?).BD22"Y[7 I/.>D%V6M2"3JR
M35\&5X8I/:A8I5",RCL/4I0>5:>DUGO!L!0RJ%5D\_[;5)'+-^EA 9B15I_H
M,=R,#GYODORWXY=CF"X?-W'VV_PYX3NIIN+UVI1.W'FIRJP\[BM76C_JA2R-
M>M22 $0$U!)X](=E@J]R&=8\LJ\=?@U,K=5>$K,$6"!25642+H^9BDM)Q8M[
M)Y6X//Y)U?%C1RI.74.J22R)&=>]DE9*O$AIU=92TTH#L5%H=9KD2]P5WV7P
MZKZ94H(MM9"+'O-.?L&<Y/B@*3XXM'NRQEZRLS5'SGKZ-:Z4=B^&BO&NULL$
M%$?'\]NS4W!R]?'Z[/)VOCB_N@P; WPA$7F'0SN".!IM!AC?=!DWS:$P([+P
M(9^XT%-N8J$O;ZD(C;($MX6C^O-$LO2*:T.4$E"5+[<E(TSR%S!S;3G!J<R8
MH$R5X#E'PB#+Q1W3^OGL_1+P=-8;]#D03)(?R+,>#%25 ZQ+V"RABC38.L5D
M%D1MZU>[A*&OY*!)TEC8NY!=>2(5X%O""W]7DDA]>FL1+TRO#.DJ-%O&B\E<
MY2&O)E$3*:M,OIF\$%Z=H:_Q4;!["8OS=(DV\ +E^?PI3M:DZ5Z@QJYJEH.-
MGAZ3M*N.5MB+ZVW%D2J.I??2I/<O@XIY?:V2 P7;75'.$*%[<!9G*=W#>0VS
M,@'F9)H:5^@A;SAHT[^GL6:,.# ^>.T7.99A %*PGA;9=U:J@^^)@1] ;8+4
M7?,D#K,R ^6)W6^,,>CNA:--P YD?5_J1QB3V1_2+_A;4CQ^2M%=#C.Z-^ \
MQ0&9[!7 %9NL$S8O1%9)V<GNG/:'%UF<YO?XM^&WP-%[8"^L'@?SXAC4!O[U
MKO%NN.*I0N%07J/Z$TA23,WOT8[L+_\!7, G7&WOP@; H8F 1D-=.W8.Y*P9
M6\=B]T@Y*989_AGP%);_GJ?=G-,W:+U^CS)R'1<76'IJUWDJ++6=4P7T*JU[
MO@!;M^JD 7;6HDH!?%^I_$"R!XBO\R&:@*D&[J+UQ19RKG ^K8"5D7:" 3>
MC[,E91WG^=7](J/1[(664+2,I96K-J'(Y5QWG^A*X+SM1.% N=]$JA?11V3Z
MH'I8)2B8PEJ8ODJ1Q=OG-I7(Q%N[28RQ,@H52D:*"B6;U;;08*_'2,.1*!:E
M<J6,F2L5>4PL1*70#$CI-)D)=!M$H%Y5UN:9@6*3<7W@%Z@C>@IQSSB#JW(B
M8Q$_PVYR- L=::=3J..]JZDHF1)TOY0<3.$#V?ZBFCXW]6G7NQ39B-CD7T$^
MS4 * U^)88<#90=1#R!IMU"@JNX,!@.>YW1H%AZ=L5>G0Q,.:BJ%:G::JKQF
M;"K3H0T!T( SQ/2 3+GA07T\2R;3/)G5E?%Q*$OFV<MY+(%Q[5&LC@X[A36%
M^ZG4=<6?M])4ZKIQU(H7[9RRTE;^.*,-MJ!\#3.ZG"S95Z 3J\854C'7P83&
MOPFVGV!VA]2+_PHWRM&#3(TN4B9E,[#%B&]F8 Y\"9*V1I'YV^<& Q+IU@A@
M;*!XZVFH'/3!".Y'G,UO+L\O/]R"Z[,;</N7^<W99):H?:!$TC5P@4FH_87+
M1[C:K>'5/5\P=A'%\4NYMDV'ML)M^/TM5#L4^UAPW<+8O]3.>QQ[N59N@NQA
M,:J4Q'NP9H"ISL#=2[7SA*K/2 ]XO:-)]A=?$)LZ^@B+1[2:QO2K"R*1%XAP
MNS7M#;6V<WJ@1Y".%RN>=([74%S2$>N*>VYG9>7QW=P*_-BTNAWUR!^;IS/[
M:XH51>.MP9>D#>>U5&VY%I(C-^GR]+K*=MQ,K=-XZ]2\M=AFY?/73&O]F;7-
M&C/JI(13:UD-,2)L3JWPU6E#U=KBAM,2FF/?0G =9U<9/;6QHAN@JGC"[Q0P
MU^C>5"#7\'=W@:Y4[NDK3%P9WF\@M5#=>) 3J1G8QAEX(@+T2JD56J_C+*=3
M'W3.(_#M4C:8$%^.8 BE:ON!7E%R@8(Q ,-FE#Y^(;GG!8F8+#1T^:2;&D-E
MZ^V6:K \O2U7O3+T-BRHKE280%(F&Q289..5@H?QS4#1* VO G)A^28;'9HK
MZ-CF;X1H7J;!N&8Z2C0PH.MP3F;P9P$%$\II!H!Z/2/"!1X$-AK>DWB;%/&Z
MO++Q!I*M]'#U'F7O=\4N@^=YOB/)0^5]33O];L_35-]?/]2NQ%[.V/;Q;MA1
M-;07E7=SDNG<]JVH&5.AB783)CZ=^U'[(TW<G^T%UV[OULR,I*\[5<A[W:#4
MV[M7W+.-2\VSL3/ 5,O)SQS<-!E0JH-*_VL$OV)WT[@,"+GK"3?;<9&D#S3S
M&6FYGTE.M,Y>6*U<M?M)+N>Z TI7 N==4 H'RIU04KVH?D0SNZ?!<[GK:Q%9
MO'!N;Y1,O+4_RA@>(Z45XL]+\:L!4H$ZK5!7P#FMD,RG41=-=W^*T+PZMU!'
M(5H0+^748'W(#])GH?,+2>L+F;QA/K\0+]?.+S1"U5MU4S"Y$K2Z+>*LL$.
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
MA-W^@^@GXKZ\!0@;)YM,4)U>,JXM!YY9'(UG:'PL\_<%#.NU?>7 R.%D[";
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
MH:LU#$UEI1NV>1!X[<'4CA762$RX<9""0<]%#8[43.25#<@8"H%CM!4RGQY
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
M_&XBW5!]Y2'#]\RM0<C$*XB;HV$X@!=Q ?E"S)\3_D"R5JX"N%S.!> Z[TX
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
M;0%*(YC\\MW'[W_X[AU(0CB/DN4OW^7I^R -H^B[__CW__[?_O$_WK__ A*
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
MCG;%B-@/#J8-2>%*D0K@W+<=528U[4: ULNP]Q1D092 >?4Z#--@Q$"E('E
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
M)E,CX_GA>:_;4YZ_'V!W>M?*.?/P54#=)]&TCF=U$AK42;S!7+3#_>9S[L*
M'!ZDS%]KB4#H&_W6UU*'GMQ$293BX?4%PCF]<A8#T3Q10-;<EE /4)&KIGMB
MH6S4%J!0N1-\,3&)WR#ZXS;!KC8$:8J]T#1X^1K@Y4 4Q%P+46E#&XRXC?OV
MH\&SICF),5M[#Z6SB16//ARXO$UF*$C2B':D$JCZ^RDL*&<-1XTO-5/AXO+R
M[+G.I6!6%<RF#JM=P(&F6R@0="@2 ;,@MKVC4]M4**RE=#80;'1O<+-P$T3H
MUR#.\58*+UF"),0SRFV"!9(7203G+83VC1&)1#E,:+:JTO-46UG)1JPZ]Q4$
M:8Z*K!1R5?E; I]3@+9D@WZ;;/(L)=4<<-_C?<H]_E>.$-928=5%9;AB,L/#
M,6U/!P-3H07=-Q5K;E?7X.!8HFZZ<<5N%IF80W7/WSBUVMQJYGMTIEME"F_U
M6E)5BQK;(HBV93GJJBCAL0 F.$_(^A.RLFS%[.BWI^JR:[2W4K"^5G+U"N;/
MV2*/VUVG9:/5Z/CHI5(CVV[30./04"1,9ZI.OWQ"4XGNJ<]F78>KSKQF0.NM
MSG!E? JC749$3F29=9[-QKE=2PXC,G 7;<&<UH#X?JUJP]8-6WE#*SM2?J\N
M=E^#_X*H*#O R,<V:%GM''5:.B:48_?N@S7['JYA:[EPV*WMQ*(S$,?8I>=!
M7*4;,).3Y8"'.#4?T%Y P%"34(-Q:F^O1W$?M^53\CRSR<3%P*X#4%DA=!>*
M7;TN:7^7G@93HE@WDEF#EX$FHRY12YNJ.XD)YYM2YQLV3MVP\=!-G6_8].*W
M=>_8J'AEWV_9"'B\X]RST6DBWQ#<V;UK(^@9/P-4KY%<!M:S1"?AGWF$K570
MQ]] M%R1)[RV  5+P+V*TP>J0^2E"RH75_R<S*$>9::\\J=RC[IUP9WEIH[1
MKR'*HK_*6K<TM[19*P%7ABL!]LDT=?@V-CX)D5.;6>O\DF.%) 530/;2<U(C
M]29*PR#^%PA:Y;WZPRB?D]0Q>F3-_4O0U.1[Z8F7.<!ZG-^#UVSV N(M^ J3
M;*6Q%M5 9C0:VLA.=B!(Y#;.&&AWHN<26"Z:/QGGLQ?8R>HI'$;&?L!QLC;.
MEM(XIGV@[>43>P:\8LKTOK$C%G.KWF,Y;;MF2&I$R]Y3[_E-%E=M^P;FW=;M
M-!)CR]XC.6G#9LAI/+O>$R_-^N_^!=&UXKAB]:C>WE(A*5'&$#>[O#G!, B]
M#W3D?/<6"Y]HYLV9E3Z1$_'V/N,]S$#Z&.S*C-H[F"PS@-97X#FSF#):D(_2
M,(;D>A'OM2HAT.$Q:#:0G8>OG[/C71Q6/J@ HL9/"\(&,\3;/"SVF=<W05B\
M4,Y(&I&!E6SQP5SA[8Z,+,3,S%0%%_#:!._O1LY_/G[%O ?)Y2I(P460_'$_
M8>:B2.'*O@O@K$T9RN*'ZGPVYPD9!3);"##[NR22CEZH;?URR5:),7+$_@I6
MY.@Y,I5FR3!P\L3H6D:B\23:6F(S)U+>0IP+99\Q[A.=8B@F8Y9OQ[ ,L,P#
MO( (P1>\_KX,-OA+ME.8665-!;,LOZDCCH"YV>D@!)&#:.QU]&AXZ3B*DEY@
MGMY@N1-VTXI?RN:D<,=RQ3PXEZU)E3UETQ$@]+> OFS^@*J>6"3&NWI\C8ON
M9!<Y:G.TTAJ'B\IO"Q1$-UKRDT>[V!C;XO,]I'6;X+^"6?!J,8!U[(,LBJ4
M>;C+*("T,:->+Q8@S*(M./1L&F3@$I*(:HX7# \;@ JMTJMS_8:E"'0:6BQ*
M*-<H[" $NG(AEQH9VCI4O!WQ3QD,_W@.4C"_A&MR&%A@_O3#Q\^39$[,=@JP
M1")2*J( )27,;59$.*H*KY5J/9Z"XE7T2YAFZ=,*&UC!TV.P$^X(>T%6;1P[
M(K-;?:'HV05M!Q.$R(V@HJ<7NR-,V?O)2X#FXN(,/>%MU6[HC-?*/@H/'G+5
MF/5..N-3M5MJ?++9;_8CY\R/5-_[#\_/7N!L!?,4>S7LJ6:K"&4 ) QOQ0S:
M&[8NN=)N;>\-&+9R8%<)-"?2)A4R=VIC'Z(N0H_F]8*9W16I7X86IH& ;61*
M"-RW,WTY:)J:$H$A:M%;D';K<6&1*V;+\?!@,-74W]!)_VL/*)R>>2E)':G7
ME>+QF=.>(>I]Y>H6(NM;=>FP^<W*XMA8@<?.)W/AVFE($M62>1 2-O1!^?-O
M292ETZ=O[%HF*K!5=1,Q;']KBB> ME$(YH6D.513)CL&+2OUZ[2T5Q)$25VP
MBR"H,B(B@D4&HPXASXMZ#>J%H-Y@I&;3 7I6U#D1]\C?Q0][2H6CS#14@G"]
M)\6(&J0'_JIJD'6J:$DUX$*5(NM.A0-)C;$9D0RIT3"/MM$\#V+&*E4(4^W5
MV3#6V" O2A1Q9W(ZL8HV,WB=X*[NF(M0P]8\UF6MQQ+*581 B%$Q%U3LCX=(
M?O.C-1=AJADH8;#I"32I%*?>%'9KT3LCR[A<16!Q_0K"G)SN/2P6>*''-A,%
MR%*D0D@?#4B=]<[6)"3E;QJ*>.* 71VO1.S5LDN;R'E%!81*&G=EQ2'O3JV<
M<T7<\2KB1@F_(B[K6U41M_G-N8JX@JZ+*^(V&[H3'S]7-NZALK&',_ZYLO$8
M,[)NX>,>9N%V762_RG1)1<"3P!WGDEA_"%6/J100>B79R7P>$= @_@(2@(+X
MF#_(2U<<A597?:C1LJ$JS,@:)D7 _S+81%D0%QRD4T >7@7S&XAN\@SW\S9-
M<_)&'1T,,&U?A0CTV[M[)-2+J<'N0M4\+^K2[2)4H=]=QV)CH_@V\I]?05J4
MAP$H@O./O;DR/NK.GHN%^O1'X("J&'EP]LO)$#F"CH_;ZS_S*-O5KE(6[V'.
M5D'RL"G"A5\PBBR]3?9"ZFM,&Y+M.MZUR9Y]P4 J],5/:'-I'J;= O0,/4@-
M4M_G=9IJ]#<P/=G47?VB^<#]/\=Y0"_6PHLQ#!@@ZJ.O/9?+'O/"?3_W*.%P
M%P>IZ_R=^MLL<-FYGR=V=?@I7Z\#M'M83,C=:3Q=XBWQ/4RV>'7-3*0M1'&^
M47R^47R^47R^7G.^7M/W-6G*XV):K-QWE3LT2DW95VHD3=W=W?1[\4%'@E;N
M04@ZZ/DUE_/="&\V%*=_-\*!+*5S_H#/^0/26.1QTP7C&&_"2*/1(O8BXH/'
M[=G$3U2[]SGKOO#8=,?3:477W47C,(-FT-,9L59["J4;\3_L>4V+;_/9>5,<
M^3QE <K.1[_GH]^SM[%[%NR@L^$<#CMP2]H)!X-UL !11MX)&]G'<"D/[F88
ME,^>9D3-GJZS87!ND(SRT][?)&!)#IQ.<EWS:Z&7T7T.F^S@#H<F>_8V8^GT
M=%T-S;;!#:DWX&<<"=C\_ND<LCD)9R/3Z^GZ&U[0QB!Q;A^TN4[8+L<'"VV?
MAXQC=?RXOE.)MX8,O<$[6^J2^@U$RQ7^<[(%*%B"(JQQA>?MFR!"OP9Q#JP>
M.)GT;KRI4*]W;]6 '+0:!TW%Q^EJX'$\SMRG:RRC+\5T9#?2]*H@L_/9F]K)
M@3ONT[!?(Y_>G1VI8XZTF]F\86^J+;CS$2/K4(3<NG3'B9IT:JR#2<5.G=VG
MA4--$X-YP[Y33VKF%_=/-P#4/.=QQX$:]FODL]:S&W7,C78SFS?L2;4%][9*
M9IYV'-3&^?'9=3KF.CN8RQOVFP:QT/.1MDO&?')GWGH<>_YH\KE&50]]];<V
M_[E&58=^GEB-JH,#+%]Y+0#.M:G.M:DT!^ZY-M6Y-A4E[W-MJO-[Z.X7INKK
M&?4A^NG$Z^M=S/H1H 5$:_+Z@[YEFS4NE:/;^&3MNY,4QS%QW2Y:>X[@7%C0
M/?L^S<*"O9ZVGPL+G@L+G@L+GNPI:RM^>BXLJ"19K9<%M9X&M!K:F<0%7CRY
M,#MW_4K^2L=M]!I5T0G%1JZM/1B!;"/^E=8/M2BT*A'7=G'7ZTT,=P"46U%V
M[P^!Y'VDN/Z)1$#O8?8OD$U!")=)]!=9XY/Y$_/YL+B)TC"(_P4">G$\.MU2
MKR/2]6!HV-*"[N@:L9^N;4"'8/TJ![?)/7C-9B\@WH*O,,E6] IC=+H##E .
MW3<Z0%6TX,( Y?336LYZQP'ZJR[KLQ=(7)+IP.Q,3W- =J!W0@.Q+ZD/-0 [
M],\\O]FW@8?)@G&'7HOBX(.O1O%-#S^>Y-T9@+4>FN?+VKZO9;) F,$LB&4R
MZF'9JD6GPS)5D<X)#<>N4AYC&:K8KW+H_<U@Z!$"-J]*DH.HVS3-B4-!A[??
M"^&D] D6$<D7!--6P+D3DBJD:HC$@Q'1BWQTS=V4:&G+?_?T('*4*Q?6G]ON
MX;UL-[1UOI#0O:_G"PGG"PD^74BX#E""YZ,43T@%@Q8O%]!=X9P-R\"J=3\7
MS,;2[AYDMPD6.KC#\_IDBT5,[&8&L;FM85+,^RL88QM*L85%(8?UCEA*R1AC
ML7M'HF6I49SC<7ZQV_?[,@[25'P;0AM#Z]Z#!H;S#8?S#0=[-QPZZX/:E*CD
MS:HDR+ZU3%AW4EZ[WTZPO4 ]I[5ZHZHN<ZYA JLR(:=355.4U;PS_M?1,^-_
M_#XC,GA8W";S:!O-\R!F3/1"F%*('!AK;/P69:MBWX:5FJZBS0Q>)[BK.^8\
M;MB:Q[JL]5A"N8H0"#$JYE3+_GBX^]S\:&W8FVH&2AALCGE-*F2\T]C=&?!&
M2^1J CG.+]5Y"OMVJG;#UG)6WM!'HS,63&>#U*'L>9T;\7P$N_ISB2JJ%9HV
MD3>[^%)9/_2R".,0\K)&.(?QUB$&)X;) ^?$,MO@]F.:*A%+E7BD.V%:$2LB
M%BP.?;&XH9B)YJ!FHB+#ED)A[B>W #U#^_.3\EBDQ:=T\BS#WI)H'\?)%ATA
M5<)O_R1B><"6/N192HZAL$ X_L*T>2E[_>8NRZ@X?C$44*.MIG3*MM9&I+$1
MP&[R:8Y<W5Z0D:Q)W=]G';&_0L5FI<C((\>&!8N3+$/1<Y[M#Q1%FQQZ=NT/
M8:G,/A!Z.0)ZEV3W8=%'EZQ=]QO*W9<K@9;@U!R^K+78Y?-;>VGRW60TF-OG
MT_?W.1=Z/<M:HPAA.%M:G]<<*OQV-S(.%?/+7J+]E]6HB5JP1"U&<B(FQ>:Y
M?Z,ZT#&_P.3AMK[CKE-_QZ]/T/-#@(XQ:<UX:2_A:3E-\UG<]A%!UT12V$=:
MI2C>J-RE9AZW1E?\/=^1)D"W I6FF<)BQ\8-"NO0ZS,$8J&</Y'#%&QR%*[P
MSO41P24*UI-D3GWH4+.?5ZOZGY/I]?3Z\=OT\I^3I^O'Z<.7Z>3KY/Z*^O#$
MJ[!FVKY*#=!O;V.%68SXA\4,@2#-T:XP1%:2N!2N9%L -U:>T)0$11AY7ZW?
MJPS<X^^C=I&=,MS^4N\F.YEDN(Y^#5ZC=;YF=I7YK>PL]<W:5, 2)Q1WO>G3
M:PB(&Z<:^CM'M@<#%!D?0RA5XDBCD;\"D3LXR'<A3?%P41W$Y5I6K4Y(HGBL
MC,5B:[-1A2?46U2A"I46/3YK03"W%RF<=8$2<+U,@ #86A&%=I_R; 41*1 Q
M6<,\R3ZJL<UK)>:_W<K>OEM-G=!4 M1.6TCM4 A!A8J7SH/-W;Y^)8GF'-@\
MPNB8HPXBH86J(?+6: WDU(\=JQ'VMT2 SE3'=RE*L08Y)8$[.96*'$J+-OWU
MA\9R3@FYOP9M'@6!ZC$#RK?HDB1J$) :O/)$^87\AU32^/?_#U!+ 0(4 Q0
M   ( +. JEA#$7.^I00! (/]"@ 2              "  0    !E9C(P,#(V
M,S$U7S$P<2YH=&U02P$"% ,4    " "S@*I8Y+E&A[0'  #P*P  %0
M        @ '5! $ 968R,# R-C,Q-5]E>#,Q+3$N:'1M4$L! A0#%     @
MLX"J6-_J^^98!   Y1$  !4              ( !O P! &5F,C P,C8S,35?
M97@S,BTQ+FAT;5!+ 0(4 Q0    ( +. JEAL/PPWR2(  'PE   .
M      "  4<1 0!I;6%G93 P,# Q+FIP9U!+ 0(4 Q0    ( +. JECXY]$Y
MPPH  'EK   1              "  3PT 0!T;&9A+3(P,C0P,S,Q+GAS9%!+
M 0(4 Q0    ( +. JE@S[;ATI@T  (:W   5              "  2X_ 0!T
M;&9A+3(P,C0P,S,Q7V-A;"YX;6Q02P$"% ,4    " "S@*I8)A\(]3H=   X
M[P$ %0              @ $'30$ =&QF82TR,#(T,#,S,5]D968N>&UL4$L!
M A0#%     @ LX"J6#[].RC(90  TL,% !4              ( !=&H! '1L
M9F$M,C R-# S,S%?;&%B+GAM;%!+ 0(4 Q0    ( +. JEC<:[=FF#8   *Y
M P 5              "  6_0 0!T;&9A+3(P,C0P,S,Q7W!R92YX;6Q02P4&
2      D "0!- @  .@<"

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>53
<FILENAME>ef20026315_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:country="http://xbrl.sec.gov/country/2023"
  xmlns:dei="http://xbrl.sec.gov/dei/2023"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:srt="http://fasb.org/srt/2023"
  xmlns:tlfa="http://tandyleather.com/20240331"
  xmlns:us-gaap="http://fasb.org/us-gaap/2023"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <link:schemaRef xlink:href="tlfa-20240331.xsd" xlink:type="simple"/>
    <context id="c20240101to20240331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="c20240510">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
        </entity>
        <period>
            <instant>2024-05-10</instant>
        </period>
    </context>
    <context id="c20240331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="c20231231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c20230101to20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="c20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="c20231231_StatementEquityComponentsAxis_TreasuryStockCommonMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c20231231_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</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="c20221231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20231231_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</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="c20221231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20221231_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20221231_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20231231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</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="c20221231_StatementEquityComponentsAxis_TreasuryStockCommonMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20231231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c20240101to20240331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</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="c20240101to20240331_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</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="c20240101to20240331_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</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="c20230101to20230331_StatementEquityComponentsAxis_TreasuryStockCommonMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="c20230101to20230331_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="c20240101to20240331_StatementEquityComponentsAxis_TreasuryStockCommonMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="c20240101to20240331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="c20230101to20230331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="c20230101to20230331_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="c20230101to20230331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="c20240331_StatementEquityComponentsAxis_TreasuryStockCommonMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="c20240331_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</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="c20230331_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="c20230331_StatementEquityComponentsAxis_TreasuryStockCommonMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="c20230331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="c20240331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="c20230331_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="c20240331_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</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="c20230331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="c20240331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</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="c20240331_StatementGeographicalAxis_CA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="c20240331_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="c20240331_StatementGeographicalAxis_ES">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:ES</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="c20221231_BalanceSheetLocationAxis_AccountsPayableAndAccruedLiabilitiesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccountsPayableAndAccruedLiabilitiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20240331_BalanceSheetLocationAxis_AccountsPayableAndAccruedLiabilitiesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccountsPayableAndAccruedLiabilitiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="c20231231_BalanceSheetLocationAxis_AccountsPayableAndAccruedLiabilitiesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccountsPayableAndAccruedLiabilitiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c20240101to20240331_StatementGeographicalAxis_CA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="c20240101to20240331_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="c20230101to20230331_StatementGeographicalAxis_CA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="c20230101to20230331_StatementGeographicalAxis_OtherCountriesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tlfa:OtherCountriesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="c20240101to20240331_StatementGeographicalAxis_OtherCountriesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tlfa:OtherCountriesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="c20230101to20230331_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="c20230101to20230331_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_RangeAxis_MaximumMember_StatementGeographicalAxis_AllOtherCountriesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tlfa:AllOtherCountriesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="c20240101to20240331_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_RangeAxis_MaximumMember_StatementGeographicalAxis_AllOtherCountriesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tlfa:AllOtherCountriesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="c20240331_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember_RangeAxis_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="c20240331_PropertyPlantAndEquipmentByTypeAxis_VehiclesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:VehiclesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="c20240331_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember_RangeAxis_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="c20240331_PropertyPlantAndEquipmentByTypeAxis_BuildingAndBuildingImprovementsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingAndBuildingImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="c20240331_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndFixturesMember_RangeAxis_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="c20240331_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndFixturesMember_RangeAxis_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="c20240101to20240331_FiniteLivedIntangibleAssetsByMajorClassAxis_IntellectualPropertyMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:IntellectualPropertyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="c20240101to20240331_RangeAxis_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="c20230101to20230331_RangeAxis_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="c20240331_RangeAxis_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="c20230103_LineOfCreditFacilityAxis_JPMorganChaseBankNAMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">tlfa:JPMorganChaseBankNAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-03</instant>
        </period>
    </context>
    <context id="c20240101to20240331_LineOfCreditFacilityAxis_JPMorganChaseBankNAMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">tlfa:JPMorganChaseBankNAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="c20200630_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_TwoThousandAndThirteenRestrictedStockPlanMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tlfa:TwoThousandAndThirteenRestrictedStockPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-30</instant>
        </period>
    </context>
    <context id="c20230430_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember_RangeAxis_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tlfa:TwoThousandAndTwentyThreeRestrictedStockPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-04-30</instant>
        </period>
    </context>
    <context id="c20130131_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_TwoThousandAndThirteenRestrictedStockPlanMember_RangeAxis_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tlfa:TwoThousandAndThirteenRestrictedStockPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2013-01-31</instant>
        </period>
    </context>
    <context id="c20240101to20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember_TitleOfIndividualAxis_ChiefExecutiveOfficerMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:ChiefExecutiveOfficerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tlfa:ServicedBasedRestrictedStockUnitsRSUsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tlfa:TwoThousandAndTwentyThreeRestrictedStockPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="c20240101to20240331_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember_RangeAxis_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tlfa:TwoThousandAndTwentyThreeRestrictedStockPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="c20240101to20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember_TitleOfIndividualAxis_DirectorMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tlfa:ServicedBasedRestrictedStockUnitsRSUsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tlfa:TwoThousandAndTwentyThreeRestrictedStockPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="c20240101to20240331_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tlfa:TwoThousandAndTwentyThreeRestrictedStockPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="c20240301to20240331_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tlfa:TwoThousandAndTwentyThreeRestrictedStockPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-03-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="c20231001to20231031_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember_TitleOfIndividualAxis_ChiefExecutiveOfficerMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:ChiefExecutiveOfficerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tlfa:ServicedBasedRestrictedStockUnitsRSUsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tlfa:TwoThousandAndTwentyThreeRestrictedStockPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-10-01</startDate>
            <endDate>2023-10-31</endDate>
        </period>
    </context>
    <context id="c20230601to20230630_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember_TitleOfIndividualAxis_DirectorMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tlfa:ServicedBasedRestrictedStockUnitsRSUsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tlfa:TwoThousandAndTwentyThreeRestrictedStockPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-06-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="c20231231_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tlfa:RestrictedStockAndRestrictedStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c20240101to20240331_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tlfa:RestrictedStockAndRestrictedStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="c20240331_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tlfa:RestrictedStockAndRestrictedStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="c20240101to20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tlfa:ServicedBasedRestrictedStockUnitsRSUsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="c20230101to20230331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tlfa:ServicedBasedRestrictedStockUnitsRSUsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="c20240101to20240331_AwardTypeAxis_PerformanceBasedRestrictedStockUnitsRSUsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tlfa:PerformanceBasedRestrictedStockUnitsRSUsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="c20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tlfa:ServicedBasedRestrictedStockUnitsRSUsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="c20230101to20230331_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tlfa:RestrictedStockAndRestrictedStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="c20240101to20240331_AwardTypeAxis_RestrictedStockMember_TitleOfIndividualAxis_DirectorMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="c20230101to20230331_AwardTypeAxis_RestrictedStockMember_TitleOfIndividualAxis_ShareBasedPaymentArrangementEmployeeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">us-gaap:ShareBasedPaymentArrangementEmployeeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="c20240101to20240331_AwardTypeAxis_RestrictedStockMember_TitleOfIndividualAxis_ShareBasedPaymentArrangementEmployeeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">us-gaap:ShareBasedPaymentArrangementEmployeeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="c20230101to20230331_AwardTypeAxis_RestrictedStockMember_TitleOfIndividualAxis_DirectorMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="c20220808_RangeAxis_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000909724</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-08-08</instant>
        </period>
    </context>
    <unit id="U001">
        <measure>shares</measure>
    </unit>
    <unit id="U002">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="U003">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="U004">
        <measure>tlfa:Store</measure>
    </unit>
    <unit id="U005">
        <measure>tlfa:Segment</measure>
    </unit>
    <unit id="U006">
        <measure>pure</measure>
    </unit>
    <unit id="U007">
        <measure>tlfa:Discount</measure>
    </unit>
    <dei:AmendmentFlag
      contextRef="c20240101to20240331"
      id="Fact_2b3b1b9107764bbc9b894fff0f817a5b">false</dei:AmendmentFlag>
    <dei:CurrentFiscalYearEndDate
      contextRef="c20240101to20240331"
      id="Fact_2a5e425a910d41819ff4d94da660a161">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentFiscalYearFocus
      contextRef="c20240101to20240331"
      id="Fact_a4bdb8c75a8944cca3d049de19a86345">2024</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus
      contextRef="c20240101to20240331"
      id="Fact_ecc12230cce54007922065fddf23a5cc">Q1</dei:DocumentFiscalPeriodFocus>
    <dei:EntityCentralIndexKey
      contextRef="c20240101to20240331"
      id="Fact_769cd3b399a843ab9da7ef0fee5e5749">0000909724</dei:EntityCentralIndexKey>
    <us-gaap:NumberOfOperatingSegments
      contextRef="c20240101to20240331"
      decimals="INF"
      id="Fact_53019d5e2b204ab49d2b6ecf90dbadfa"
      unitRef="U005">1</us-gaap:NumberOfOperatingSegments>
    <us-gaap:NumberOfReportableSegments
      contextRef="c20240101to20240331"
      decimals="INF"
      id="Fact_07119480a0aa41a9af1c991f8ee8cf42"
      unitRef="U005">1</us-gaap:NumberOfReportableSegments>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20240331_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember_RangeAxis_MinimumMember"
      id="Fact_138de38eb2164d4da489f5d1fc8ccb33">P3Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20240331_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndFixturesMember_RangeAxis_MinimumMember"
      id="Fact_081f9d3879424da5a84f1d889d24a907">P7Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <dei:SecurityExchangeName
      contextRef="c20240101to20240331"
      id="Fact_8d5677946dd14b1dbd72bffe8fb1efe3">NASDAQ</dei:SecurityExchangeName>
    <us-gaap:CommitmentsAndContingencies
      contextRef="c20240331"
      id="Fact_34a595a0c62f48acb4e6be9a8ed0ae1c"
      unitRef="U002"
      xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies
      contextRef="c20231231"
      id="Fact_e0651627809640b292897958433181f4"
      unitRef="U002"
      xsi:nil="true"/>
    <dei:DocumentType
      contextRef="c20240101to20240331"
      id="Fact_6bc8d1d88f9d4ad291a2d93b945e8a04">10-Q</dei:DocumentType>
    <dei:DocumentQuarterlyReport
      contextRef="c20240101to20240331"
      id="Fact_1f05e00be1cc4359b0bb517c59dc2361">true</dei:DocumentQuarterlyReport>
    <dei:DocumentPeriodEndDate
      contextRef="c20240101to20240331"
      id="Fact_da20207f205343d4872aa035b0939359">2024-03-31</dei:DocumentPeriodEndDate>
    <dei:DocumentTransitionReport
      contextRef="c20240101to20240331"
      id="Fact_8fb3ec6206fe4c738f56ffca6aa6b8bf">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber
      contextRef="c20240101to20240331"
      id="Fact_d50af2a173ac479ba8a404687c93fd72">1-12368</dei:EntityFileNumber>
    <dei:EntityRegistrantName
      contextRef="c20240101to20240331"
      id="Fact_fee2f731effe4264b7efcac3d5f20fed">TANDY LEATHER FACTORY, INC</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode
      contextRef="c20240101to20240331"
      id="Fact_ed1ce4f675114746ba2e102e4081b69f">DE</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber
      contextRef="c20240101to20240331"
      id="Fact_5a7f0988c49f4b2faafc4b39aa75fa27">75-2543540</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1
      contextRef="c20240101to20240331"
      id="Fact_b359cbff66ce46ed88c8b0e7078c7545">1900 Southeast Loop 820</dei:EntityAddressAddressLine1>
    <dei:EntityAddressCityOrTown
      contextRef="c20240101to20240331"
      id="Fact_a2df616486534fc5b472c9fbb4f2ac7f">Fort Worth</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="c20240101to20240331"
      id="Fact_e141d97b9fd0449eac7d54e6781c1c16">TX</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode
      contextRef="c20240101to20240331"
      id="Fact_899a2dea4ed84c3f9ecd762866bec385">76140</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode
      contextRef="c20240101to20240331"
      id="Fact_549df5a0b6c741f38e5c37a2936744d6">817</dei:CityAreaCode>
    <dei:LocalPhoneNumber
      contextRef="c20240101to20240331"
      id="Fact_38acc00125d64ed685e73ff581b889e5">872-3200</dei:LocalPhoneNumber>
    <dei:Security12bTitle
      contextRef="c20240101to20240331"
      id="Fact_f6a90e49d1ca475eab2beb24ad663c28">Common Stock, par value $0.0024</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="c20240101to20240331"
      id="Fact_4ef7fe560f304157a36b34792e25f7cc">TLF</dei:TradingSymbol>
    <dei:EntityCurrentReportingStatus
      contextRef="c20240101to20240331"
      id="Fact_7462a5e3928d4e9ea9940150b1254345">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent
      contextRef="c20240101to20240331"
      id="Fact_adfb022b38a34fdea0f3d10bc0354354">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory
      contextRef="c20240101to20240331"
      id="Fact_a6c39124a9944daea4c2b68c8b07816e">Non-accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness
      contextRef="c20240101to20240331"
      id="Fact_c83ac92d4cec4867881d3657a6fdaab2">true</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany
      contextRef="c20240101to20240331"
      id="Fact_406ad1d5c23c49729bab7eb3c1508071">false</dei:EntityEmergingGrowthCompany>
    <dei:EntityShellCompany
      contextRef="c20240101to20240331"
      id="Fact_6e8d7ff744ec4199a9d32e2d618b8e55">false</dei:EntityShellCompany>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="c20240510"
      decimals="INF"
      id="Fact_1742aaea241f48b2b1bf68309b168f4e"
      unitRef="U001">8401972</dei:EntityCommonStockSharesOutstanding>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="c20240331"
      decimals="-3"
      id="Fact_f62070ca53104d4ba151c630e4e4a1e9"
      unitRef="U002">12315000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="c20231231"
      decimals="-3"
      id="Fact_acd4eb7224d943e981813fec3b10eb8a"
      unitRef="U002">12159000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_46d596c2d45c4fefa92b51156eb74549"
      unitRef="U002">31000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="c20240331"
      decimals="-3"
      id="Fact_293bf35261534227b66591d272267701"
      unitRef="U002">31000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="c20240331"
      decimals="-3"
      id="Fact_b43d23186a354ef087c9ca3f0714944f"
      unitRef="U002">420000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_f6edb4e0e0b749f68305f01636331399"
      unitRef="U002">264000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:InventoryNet
      contextRef="c20240331"
      decimals="-3"
      id="Fact_082e0eee2b8a4713a7c6283f78807a0c"
      unitRef="U002">36675000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="c20231231"
      decimals="-3"
      id="Fact_04cf1b1bb642476d9415c65d064283d1"
      unitRef="U002">37993000</us-gaap:InventoryNet>
    <us-gaap:IncomeTaxesReceivable
      contextRef="c20240331"
      decimals="-3"
      id="Fact_9569c2a285484bf5a1e8671ca34e2169"
      unitRef="U002">248000</us-gaap:IncomeTaxesReceivable>
    <us-gaap:IncomeTaxesReceivable
      contextRef="c20231231"
      decimals="-3"
      id="Fact_26db74e67738448993d3afee0b1d2d09"
      unitRef="U002">248000</us-gaap:IncomeTaxesReceivable>
    <us-gaap:PrepaidExpenseCurrent
      contextRef="c20240331"
      decimals="-3"
      id="Fact_41b6488a3a3a44a88ad21a52af44d03f"
      unitRef="U002">403000</us-gaap:PrepaidExpenseCurrent>
    <us-gaap:PrepaidExpenseCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_7ab4bb06c3b8482e84d348cd41978ad3"
      unitRef="U002">475000</us-gaap:PrepaidExpenseCurrent>
    <us-gaap:OtherAssetsCurrent
      contextRef="c20240331"
      decimals="-3"
      id="Fact_72f4735c8452450588a5082fc9155886"
      unitRef="U002">99000</us-gaap:OtherAssetsCurrent>
    <us-gaap:OtherAssetsCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_3dbac0e053c54355b179d600e1c205ca"
      unitRef="U002">113000</us-gaap:OtherAssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="c20240331"
      decimals="-3"
      id="Fact_995f57d29ee64d2db251b190ed0f3ec3"
      unitRef="U002">50160000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_b5b9f863a39241b5afc9a427225f9788"
      unitRef="U002">51252000</us-gaap:AssetsCurrent>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20240331"
      decimals="-3"
      id="Fact_1729587441e2462495c0439e1e1c882b"
      unitRef="U002">29875000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20231231"
      decimals="-3"
      id="Fact_7acd6689df674f3dbab31f92f3a08df8"
      unitRef="U002">28678000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="c20240331"
      decimals="-3"
      id="Fact_3e4fb85c9e6542f39e5a78298cfaf205"
      unitRef="U002">18426000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="c20231231"
      decimals="-3"
      id="Fact_10f9e733c68f4ac4914585c13e5fd0a5"
      unitRef="U002">18131000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20240331"
      decimals="-3"
      id="Fact_f72bd034c5f44a138409a07a60bc635c"
      unitRef="U002">11449000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20231231"
      decimals="-3"
      id="Fact_5bd5772e381b4d8f813e1dd299e40828"
      unitRef="U002">10547000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="c20240331"
      decimals="-3"
      id="Fact_71eb22a417f54533b1e1b044e588bfc6"
      unitRef="U002">9503000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="c20231231"
      decimals="-3"
      id="Fact_1018266c2a7540a195a15dca0489054c"
      unitRef="U002">8995000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:FinanceLeaseRightOfUseAsset
      contextRef="c20240331"
      decimals="-3"
      id="Fact_2ded10a9af984a029883901596abdd70"
      unitRef="U002">0</us-gaap:FinanceLeaseRightOfUseAsset>
    <us-gaap:FinanceLeaseRightOfUseAsset
      contextRef="c20231231"
      decimals="-3"
      id="Fact_3f31f84862244212ad54577d881c2378"
      unitRef="U002">23000</us-gaap:FinanceLeaseRightOfUseAsset>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="c20240331"
      decimals="-3"
      id="Fact_3f515628f2cf4f328ad46a7cb2c99fd1"
      unitRef="U002">880000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="c20231231"
      decimals="-3"
      id="Fact_70f24457e3214e37805977f93e7e030c"
      unitRef="U002">880000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="c20240331"
      decimals="-3"
      id="Fact_0541ef70243b490987cc2734e2f1ade0"
      unitRef="U002">440000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_7a579ba1a3f8410fbbef8802e1dfd86f"
      unitRef="U002">438000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets
      contextRef="c20240331"
      decimals="-3"
      id="Fact_1fe1585753e64adea846847776632ae1"
      unitRef="U002">72432000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="c20231231"
      decimals="-3"
      id="Fact_70cffd90289e4302b54227519ea5ff7f"
      unitRef="U002">72135000</us-gaap:Assets>
    <us-gaap:AccountsPayableTradeCurrent
      contextRef="c20240331"
      decimals="-3"
      id="Fact_11c12efc92224acda9e458cb99da55e6"
      unitRef="U002">2215000</us-gaap:AccountsPayableTradeCurrent>
    <us-gaap:AccountsPayableTradeCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_ad09d85a682f4e8d97b11d1b3b7dbfb4"
      unitRef="U002">2333000</us-gaap:AccountsPayableTradeCurrent>
    <us-gaap:AccruedLiabilitiesAndOtherLiabilities
      contextRef="c20240331"
      decimals="-3"
      id="Fact_4eef18432c924b56b3185d5a927b281c"
      unitRef="U002">1986000</us-gaap:AccruedLiabilitiesAndOtherLiabilities>
    <us-gaap:AccruedLiabilitiesAndOtherLiabilities
      contextRef="c20231231"
      decimals="-3"
      id="Fact_aac5d183456b4ea0b8f8a0b9dabb0ca5"
      unitRef="U002">3140000</us-gaap:AccruedLiabilitiesAndOtherLiabilities>
    <us-gaap:TaxesPayableCurrent
      contextRef="c20240331"
      decimals="-3"
      id="Fact_1e61e8dbeefb4fd88509d39f3b899a0c"
      unitRef="U002">449000</us-gaap:TaxesPayableCurrent>
    <us-gaap:TaxesPayableCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_cda6dbc814a7488cb3d6edbc252dfa50"
      unitRef="U002">288000</us-gaap:TaxesPayableCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="c20240331"
      decimals="-3"
      id="Fact_b0ed5a54a31d412b9206534fe59808b1"
      unitRef="U002">3194000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_2404d22b257443b8ba6b802bb6a77552"
      unitRef="U002">3172000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="c20240331"
      decimals="-3"
      id="Fact_194f3a521f8542ed98e877f03b2c7a02"
      unitRef="U002">7844000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_02ec94ec4d2a470489824c13737974d1"
      unitRef="U002">8933000</us-gaap:LiabilitiesCurrent>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="c20240331"
      decimals="-3"
      id="Fact_4d8137d4ddef4158a2cb555a3095bdda"
      unitRef="U002">9000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="c20231231"
      decimals="-3"
      id="Fact_d9ce892ce9ca4a31bb1d7b21a1f4fecf"
      unitRef="U002">9000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent
      contextRef="c20240331"
      decimals="-3"
      id="Fact_c9ad2f5c2f774ea4a3d5d622da635aac"
      unitRef="U002">388000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
    <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_8de18742607b436280eb413a3b253259"
      unitRef="U002">388000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="c20240331"
      decimals="-3"
      id="Fact_d949d25374384172856dc7f66fdca62b"
      unitRef="U002">210000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_204d66e26dbf491cba8340ec6a46a474"
      unitRef="U002">205000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="c20240331"
      decimals="-3"
      id="Fact_7dd3626f31de4d73899181cc1a2a07b9"
      unitRef="U002">6743000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_18ae09ec07c649dbb83a7ab0e8114e93"
      unitRef="U002">6253000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:FinanceLeaseLiabilityNoncurrent
      contextRef="c20240331"
      decimals="-3"
      id="Fact_2897bf9ae23745e99a9c1d1ef250b3db"
      unitRef="U002">0</us-gaap:FinanceLeaseLiabilityNoncurrent>
    <us-gaap:FinanceLeaseLiabilityNoncurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_ca742f7dd7a24b1ab1630d94c691e193"
      unitRef="U002">1000</us-gaap:FinanceLeaseLiabilityNoncurrent>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="c20240331"
      decimals="4"
      id="Fact_af70c7f62d8a42698a7ffb29891ea158"
      unitRef="U003">0.0024</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="c20231231"
      decimals="4"
      id="Fact_67ad98c9aca24ba8a594ce8c89c08b06"
      unitRef="U003">0.0024</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="c20240331"
      decimals="0"
      id="Fact_10d33001bd8a4b708a13ea2111c77547"
      unitRef="U001">25000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="c20231231"
      decimals="0"
      id="Fact_05c4c121b89f421f98b20e1e3bdd917e"
      unitRef="U001">25000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued
      contextRef="c20240331"
      decimals="0"
      id="Fact_3cef10a11764446d9e282f6524a327d8"
      unitRef="U001">9826348</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesIssued
      contextRef="c20231231"
      decimals="0"
      id="Fact_83ea9d00f0eb43668b9ae6615ee8aaa0"
      unitRef="U001">9823621</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="c20240331"
      decimals="0"
      id="Fact_304d4910515b4c3b92a82deb23a70c36"
      unitRef="U001">8401972</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="c20231231"
      decimals="0"
      id="Fact_57df0afafed8470d99fc99f10a787aa5"
      unitRef="U001">8399245</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockValue
      contextRef="c20240331"
      decimals="-3"
      id="Fact_86a951983e904f92bd6f529a6be80fc8"
      unitRef="U002">23000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="c20231231"
      decimals="-3"
      id="Fact_d963ecd1aeaf46ffa26e5b4a762d7524"
      unitRef="U002">23000</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapital
      contextRef="c20240331"
      decimals="-3"
      id="Fact_b25aaa898f8447d08deaedfd3c1c9a54"
      unitRef="U002">4178000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AdditionalPaidInCapital
      contextRef="c20231231"
      decimals="-3"
      id="Fact_c749042e61ee41b1af7383819983ddf1"
      unitRef="U002">3981000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="c20240331"
      decimals="-3"
      id="Fact_5d919692d0154de7b43c9af45fd1dd13"
      unitRef="U002">64184000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="c20231231"
      decimals="-3"
      id="Fact_631d680706e2489cbaebfe4c28826c67"
      unitRef="U002">63659000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:TreasuryStockCommonShares
      contextRef="c20240331"
      decimals="0"
      id="Fact_f55a4907f73940b485a040204406f87d"
      unitRef="U001">1424376</us-gaap:TreasuryStockCommonShares>
    <us-gaap:TreasuryStockCommonShares
      contextRef="c20231231"
      decimals="0"
      id="Fact_13dd1be091a7489ab34f6ffdc13d6c61"
      unitRef="U001">1424376</us-gaap:TreasuryStockCommonShares>
    <us-gaap:TreasuryStockCommonValue
      contextRef="c20240331"
      decimals="-3"
      id="Fact_95e3dbf4d3dc48628c3ce62a07cc30ef"
      unitRef="U002">9773000</us-gaap:TreasuryStockCommonValue>
    <us-gaap:TreasuryStockCommonValue
      contextRef="c20231231"
      decimals="-3"
      id="Fact_152d00a129594a6fa9afdcfcda3fc243"
      unitRef="U002">9773000</us-gaap:TreasuryStockCommonValue>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="c20240331"
      decimals="-3"
      id="Fact_575f180949724a33aa35bf42e4c0e306"
      unitRef="U002">-1374000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="c20231231"
      decimals="-3"
      id="Fact_cc94befd8c434ea684d35d1228e17802"
      unitRef="U002">-1544000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:StockholdersEquity
      contextRef="c20240331"
      decimals="-3"
      id="Fact_f883230d5eaf479fa435f783bf88261f"
      unitRef="U002">57238000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20231231"
      decimals="-3"
      id="Fact_c6ee96b092f44dc88a0f39788718f460"
      unitRef="U002">56346000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="c20240331"
      decimals="-3"
      id="Fact_197ad2ddc1fb41eb92432bd8c7a403ca"
      unitRef="U002">72432000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="c20231231"
      decimals="-3"
      id="Fact_15f1e2a04f714518b29ae79d86c2c952"
      unitRef="U002">72135000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_28ab1dc5f0a2424d8e9507d5f14104fc"
      unitRef="U002">19275000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_f76448f774c349d886f63f859102ba20"
      unitRef="U002">20360000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_08ad0ab3b90d4a29bcd05a5a2412c222"
      unitRef="U002">8355000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_3001a87b92ac45178335e06196f78154"
      unitRef="U002">8541000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:GrossProfit
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_ad1521a8e2b64a6082f4b08d9898ae70"
      unitRef="U002">10920000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_1e45e4e3b4874a0481a1321d4d8ba72f"
      unitRef="U002">11819000</us-gaap:GrossProfit>
    <us-gaap:OperatingCostsAndExpenses
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_6ed6ccd523dc416e80f9983374ac1430"
      unitRef="U002">10271000</us-gaap:OperatingCostsAndExpenses>
    <us-gaap:OperatingCostsAndExpenses
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_d52f31b1a1d54a1aa6fd79b5821860dd"
      unitRef="U002">10838000</us-gaap:OperatingCostsAndExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_c1838608426a4bc68dbd6c106f0a789e"
      unitRef="U002">649000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_98932bab7fba4fb4b34a99ce01a86f3f"
      unitRef="U002">981000</us-gaap:OperatingIncomeLoss>
    <us-gaap:InterestIncomeExpenseNet
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_c2da8dd0893244b498e3547c076b4fbb"
      unitRef="U002">84000</us-gaap:InterestIncomeExpenseNet>
    <us-gaap:InterestIncomeExpenseNet
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_e330165548d24674858cfc5fd059ddd2"
      unitRef="U002">0</us-gaap:InterestIncomeExpenseNet>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_108d6a79397547c48d7e11915d592dac"
      unitRef="U002">-26000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_9d23b23709c44bbbac8a99ecacb73f07"
      unitRef="U002">-39000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_18fa3be61f484139a1c6e089534ab407"
      unitRef="U002">58000</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_b266839f55734d1c8a9e0ee18ce1c75c"
      unitRef="U002">-39000</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_6b114d3106eb415bb6c8bd352b3580a8"
      unitRef="U002">707000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_65c36355252f4445a090cedf55f3a9e1"
      unitRef="U002">942000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_6f0a9abd2b854880a4cea52c1b5c55c1"
      unitRef="U002">182000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_bc0ef930725142b88fecbd19535f4d09"
      unitRef="U002">278000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_e1da1b23cdf8445382ee1559f1ca10ff"
      unitRef="U002">525000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_11c09da99dc541c58944950ba1d6e947"
      unitRef="U002">664000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_9f58233529184502bbb78e902c17d11f"
      unitRef="U002">170000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_890fc1bf9013436da25f0f2340b633fd"
      unitRef="U002">-39000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_8d5799618a2f4ddea292ae2625003114"
      unitRef="U002">695000</us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_01793ba7ebe541fba3a045972bfb1d8c"
      unitRef="U002">625000</us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20240101to20240331"
      decimals="2"
      id="Fact_af8bb7d74ccc49718439d1098784cea9"
      unitRef="U003">0.06</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20230101to20230331"
      decimals="2"
      id="Fact_eaffbdda29134a7c956b7bff6860d072"
      unitRef="U003">0.08</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20240101to20240331"
      decimals="2"
      id="Fact_38046fb445494e13844f410a6746d194"
      unitRef="U003">0.06</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20230101to20230331"
      decimals="2"
      id="Fact_b50308a356a34c2a966f7b204c6cd206"
      unitRef="U003">0.08</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="c20240101to20240331"
      decimals="0"
      id="Fact_00df9490fe9e42b088c6215bca442e03"
      unitRef="U001">8400354</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="c20230101to20230331"
      decimals="0"
      id="Fact_92588e99a08f4138be083aa4c405f3d8"
      unitRef="U001">8303117</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="c20240101to20240331"
      decimals="0"
      id="Fact_69f91970b59748d19193498c1d859c4e"
      unitRef="U001">8500354</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="c20230101to20230331"
      decimals="0"
      id="Fact_aa28eee9a5574e6faff73c2a132c37ce"
      unitRef="U001">8350166</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:NetIncomeLoss
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_afe992936f844416b8ec4e0642eda8cb"
      unitRef="U002">525000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_e470e02c58864ab59f66c55f2a1e2d10"
      unitRef="U002">664000</us-gaap:NetIncomeLoss>
    <us-gaap:CostOfGoodsAndServicesSoldDepreciation
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_5d306f983ba0498dba2fed642408e418"
      unitRef="U002">321000</us-gaap:CostOfGoodsAndServicesSoldDepreciation>
    <us-gaap:CostOfGoodsAndServicesSoldDepreciation
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_9d059479e7944a349a773567501ebae2"
      unitRef="U002">285000</us-gaap:CostOfGoodsAndServicesSoldDepreciation>
    <us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_69ca229d341848a68aa7ded03ac96b2f"
      unitRef="U002">919000</us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense>
    <us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_7b4a16c658e04ba38adc1f2b81daec3c"
      unitRef="U002">834000</us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense>
    <us-gaap:GainLossOnDispositionOfAssets1
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_4ceba12e5dc24afd8e0e800a4417272d"
      unitRef="U002">0</us-gaap:GainLossOnDispositionOfAssets1>
    <us-gaap:GainLossOnDispositionOfAssets1
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_4aa8f6e798b945be99d0466922c734e7"
      unitRef="U002">-27000</us-gaap:GainLossOnDispositionOfAssets1>
    <us-gaap:ShareBasedCompensation
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_4a60c5e53a5347d1bd713fefaa2f3d72"
      unitRef="U002">197000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_05ede0e37f234aa19c82a4baf8e9a20a"
      unitRef="U002">228000</us-gaap:ShareBasedCompensation>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_469f8b97f1f7415da1d2814d69cf02d0"
      unitRef="U002">158000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_dabc86ad17ae465fa2b563c2397566c6"
      unitRef="U002">104000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_096a43d6e35345a295e31300db774b2d"
      unitRef="U002">-1184000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_96a1de920fe6427ab54a9e01cf0cc156"
      unitRef="U002">-2356000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInPrepaidExpense
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_039ceca9acba48cb89985abc7d8296ea"
      unitRef="U002">-72000</us-gaap:IncreaseDecreaseInPrepaidExpense>
    <us-gaap:IncreaseDecreaseInPrepaidExpense
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_68e8dd6e5ecf4dd0af86becdaf14e5cc"
      unitRef="U002">130000</us-gaap:IncreaseDecreaseInPrepaidExpense>
    <us-gaap:IncreaseDecreaseInOtherCurrentAssets
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_fe5302e6147a46c5ae71cf7dd317f2e9"
      unitRef="U002">-14000</us-gaap:IncreaseDecreaseInOtherCurrentAssets>
    <us-gaap:IncreaseDecreaseInOtherCurrentAssets
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_491f602948a344b3845989ef3edec1dd"
      unitRef="U002">13000</us-gaap:IncreaseDecreaseInOtherCurrentAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_c96a8bd3728f4af0bba7809769bbd558"
      unitRef="U002">-115000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_ca15fff38ecb4ff189b818392e1504bd"
      unitRef="U002">-2053000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_9b82894407074b9f8452abfb20b2f340"
      unitRef="U002">-1142000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_0e6e66ff0bd445bd9018c46734ae83a7"
      unitRef="U002">-694000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInDeferredIncomeTaxes
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_ab2074bc20e94a28830c7dbb6e21bfa9"
      unitRef="U002">-163000</us-gaap:IncreaseDecreaseInDeferredIncomeTaxes>
    <us-gaap:IncreaseDecreaseInDeferredIncomeTaxes
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_f98d9f3b08284482b86938b1ab3dacf0"
      unitRef="U002">-278000</us-gaap:IncreaseDecreaseInDeferredIncomeTaxes>
    <us-gaap:IncreaseDecreaseInOtherNoncurrentAssets
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_f736b47f9e4f451d893c54a6715a4536"
      unitRef="U002">2000</us-gaap:IncreaseDecreaseInOtherNoncurrentAssets>
    <us-gaap:IncreaseDecreaseInOtherNoncurrentAssets
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_c32c1139021049b9b92d23d88cdbfe3b"
      unitRef="U002">30000</us-gaap:IncreaseDecreaseInOtherNoncurrentAssets>
    <us-gaap:IncreaseDecreaseInOperatingLeaseLiability
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_086a534cae7b43948ab0a46cd58bb461"
      unitRef="U002">-892000</us-gaap:IncreaseDecreaseInOperatingLeaseLiability>
    <us-gaap:IncreaseDecreaseInOperatingLeaseLiability
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_7253ba0442d044e495e002816e1abeb3"
      unitRef="U002">-851000</us-gaap:IncreaseDecreaseInOperatingLeaseLiability>
    <us-gaap:AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_9add301286934b06ac89dbb396719083"
      unitRef="U002">561000</us-gaap:AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities>
    <us-gaap:AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_656485542e914606afe181c1345ebe54"
      unitRef="U002">133000</us-gaap:AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_c2af07cf40504a0fb3863d68e7713c4a"
      unitRef="U002">1086000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_d7a467a27f7a4528a6ef47f8ce72ac48"
      unitRef="U002">797000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_0e1b8a61db48485dad07cd192176e387"
      unitRef="U002">1227000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_05556119cbdd43aebf16f66d8d972f68"
      unitRef="U002">87000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_47f74efe31d24dd9855eaab1a527161d"
      unitRef="U002">-1227000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_011f12bbaf0d4984814f929f220e4fb1"
      unitRef="U002">-87000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:FinanceLeasePrincipalPayments
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_79576add873747dabed9e17088a219de"
      unitRef="U002">1000</us-gaap:FinanceLeasePrincipalPayments>
    <us-gaap:FinanceLeasePrincipalPayments
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_0c9ebe11742d4007b357682c77041e76"
      unitRef="U002">0</us-gaap:FinanceLeasePrincipalPayments>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_52b5a6396326442d92ad66588a1be6fe"
      unitRef="U002">-1000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_1038047a2ccc47d6bc708c0e60ff64a9"
      unitRef="U002">0</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_080bdd037b04484ea5579b7c14fff774"
      unitRef="U002">298000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_98ef8dbc02474477aab99427288ae4e1"
      unitRef="U002">-39000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_c648e453dbe943ee9f38ad469a38a4e7"
      unitRef="U002">156000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_5d05fd4badb049b8949ff918ccfd5dbb"
      unitRef="U002">671000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20231231"
      decimals="-3"
      id="Fact_5acae741e051429da33001ab9e4162e6"
      unitRef="U002">12159000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20221231"
      decimals="-3"
      id="Fact_3a0e050ab64445d7be3cc8dba22e693d"
      unitRef="U002">7975000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20240331"
      decimals="-3"
      id="Fact_da0d3ad6306c47cf8d9980e7f11ba572"
      unitRef="U002">12315000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20230331"
      decimals="-3"
      id="Fact_90edb0cf2a4f4de6a1f4b7ed34f115be"
      unitRef="U002">8646000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:SharesOutstanding
      contextRef="c20231231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_b8c5808aafea49959365bc54a5b0dc4b"
      unitRef="U001">8399245</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="c20231231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_ce8a9973629a488d916317070d295499"
      unitRef="U002">23000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20231231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_193502deb97d4903b684c85ba1ff2460"
      unitRef="U002">3981000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20231231_StatementEquityComponentsAxis_TreasuryStockCommonMember"
      decimals="-3"
      id="Fact_87bcfc8872774c4eb11ee5614fa896a1"
      unitRef="U002">-9773000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20231231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_6192c4d0bb7c44b9acabc1b53cf93001"
      unitRef="U002">63659000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20231231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_445c88f2b73945b68d48e969e1da4be1"
      unitRef="U002">-1544000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20231231"
      decimals="-3"
      id="Fact_c7c47eee09cc4ca08e17afde33dbe01c"
      unitRef="U002">56346000</us-gaap:StockholdersEquity>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20240101to20240331_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_22ee2308bb674e9f8410219b386ee86b"
      unitRef="U002">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20240101to20240331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_247d1c2fbb634d119c2915059a5a49af"
      unitRef="U002">197000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20240101to20240331_StatementEquityComponentsAxis_TreasuryStockCommonMember"
      decimals="-3"
      id="Fact_49c3b7a93ee54062bf460a1f79813051"
      unitRef="U002">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20240101to20240331_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_a72b6b01cc9c48e49a2e5eb56b85a9e5"
      unitRef="U002">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20240101to20240331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_c38349dfac5f41e39cb243650d511b19"
      unitRef="U002">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_e1361c9c07c14e3a82e81c13101c3870"
      unitRef="U002">197000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross
      contextRef="c20240101to20240331_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_86077b2f88384003b4b10e085f0c46cc"
      unitRef="U001">2727</us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="c20240101to20240331_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_1caba3b3c804461aaaea7b12c1793cb8"
      unitRef="U002">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="c20240101to20240331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_7531e703369d4528a97243d17d06c4a6"
      unitRef="U002">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="c20240101to20240331_StatementEquityComponentsAxis_TreasuryStockCommonMember"
      decimals="-3"
      id="Fact_a53c22676262467d831dbb83ee0d8998"
      unitRef="U002">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="c20240101to20240331_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_a0d13e8703f54e20ac1f0473f1859528"
      unitRef="U002">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="c20240101to20240331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_47e51788ee864bfba890e716eddcf8b8"
      unitRef="U002">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_c81f15c956b044df91839dcd02611cea"
      unitRef="U002">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockRepurchasedAndRetiredDuringPeriodShares
      contextRef="c20240101to20240331_StatementEquityComponentsAxis_CommonStockMember"
      decimals="INF"
      id="Fact_7e2ce360c31446d4ac571c359377d3b1"
      unitRef="U001">0</us-gaap:StockRepurchasedAndRetiredDuringPeriodShares>
    <us-gaap:StockRepurchasedAndRetiredDuringPeriodValue
      contextRef="c20240101to20240331_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_7f9b66d025954361b95650d3118e6399"
      unitRef="U002">0</us-gaap:StockRepurchasedAndRetiredDuringPeriodValue>
    <us-gaap:StockRepurchasedAndRetiredDuringPeriodValue
      contextRef="c20240101to20240331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_4e83425728ae45b5bea83f8789e1a69b"
      unitRef="U002">0</us-gaap:StockRepurchasedAndRetiredDuringPeriodValue>
    <us-gaap:StockRepurchasedAndRetiredDuringPeriodValue
      contextRef="c20240101to20240331_StatementEquityComponentsAxis_TreasuryStockCommonMember"
      decimals="-3"
      id="Fact_3b5d12aef0f54933bec5eec77e074f07"
      unitRef="U002">0</us-gaap:StockRepurchasedAndRetiredDuringPeriodValue>
    <us-gaap:StockRepurchasedAndRetiredDuringPeriodValue
      contextRef="c20240101to20240331_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_9d87d27f5a844848bd3d6cb076b3befe"
      unitRef="U002">0</us-gaap:StockRepurchasedAndRetiredDuringPeriodValue>
    <us-gaap:StockRepurchasedAndRetiredDuringPeriodValue
      contextRef="c20240101to20240331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_08b27787fce7470c95c7ac9f9d4a6324"
      unitRef="U002">0</us-gaap:StockRepurchasedAndRetiredDuringPeriodValue>
    <us-gaap:StockRepurchasedAndRetiredDuringPeriodValue
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_d49acdb88534437a8ee87cebacfd1aee"
      unitRef="U002">0</us-gaap:StockRepurchasedAndRetiredDuringPeriodValue>
    <us-gaap:NetIncomeLoss
      contextRef="c20240101to20240331_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_faae8353a0884e3d8a24eac9c00f6e19"
      unitRef="U002">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20240101to20240331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_78d09ffaa49d4a8f842fc0006f4e017f"
      unitRef="U002">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20240101to20240331_StatementEquityComponentsAxis_TreasuryStockCommonMember"
      decimals="-3"
      id="Fact_c605f686055b4184948625ce7c40fe8c"
      unitRef="U002">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20240101to20240331_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_c86e937ba4a44448b013f8409b14bb5f"
      unitRef="U002">525000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20240101to20240331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_e186f7e1f8a3450f9408e74e2180d836"
      unitRef="U002">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_07d11b1eb64a4ac988e1bf0427fa2a74"
      unitRef="U002">525000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20240101to20240331_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_600663b86f644596af670fc3013f627c"
      unitRef="U002">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20240101to20240331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_2cc5a59b5efe4587a632b2d641f0236b"
      unitRef="U002">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20240101to20240331_StatementEquityComponentsAxis_TreasuryStockCommonMember"
      decimals="-3"
      id="Fact_d99e8c1e14644f5095ed046c091c22fd"
      unitRef="U002">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20240101to20240331_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_47f1e318e31a40a683af7c2a224eded1"
      unitRef="U002">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20240101to20240331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_bc260e42e48047c1a9120ec77a46b849"
      unitRef="U002">170000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_ae8a7ce4e54b4cd2810e33c1d4289407"
      unitRef="U002">170000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:SharesOutstanding
      contextRef="c20240331_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_d88152adbc9b4650ba5035beefcb79c9"
      unitRef="U001">8401972</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="c20240331_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_494246aa9b8344c096fafa7a1cb27d56"
      unitRef="U002">23000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20240331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_f609dd983d394fccb8207dc55a6fb8e7"
      unitRef="U002">4178000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20240331_StatementEquityComponentsAxis_TreasuryStockCommonMember"
      decimals="-3"
      id="Fact_b26470cb384f4b4ebd85934f2d065f96"
      unitRef="U002">-9773000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20240331_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_cbb245c59e2f42dbbbdba48fa7d39c23"
      unitRef="U002">64184000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20240331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_c8dec5996079461e951367e9dc33abe1"
      unitRef="U002">-1374000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20240331"
      decimals="-3"
      id="Fact_05f0374e6ab84a01a15b718b877943c0"
      unitRef="U002">57238000</us-gaap:StockholdersEquity>
    <us-gaap:SharesOutstanding
      contextRef="c20221231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_160d1d5c672f460fa8f4b8d1c90ede3e"
      unitRef="U001">8293149</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="c20221231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_339bc60e60bf46e5a7197b606ddf31f9"
      unitRef="U002">23000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20221231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_82eb018757fe4e90b95e194cefc9fdd1"
      unitRef="U002">3222000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20221231_StatementEquityComponentsAxis_TreasuryStockCommonMember"
      decimals="-3"
      id="Fact_1d32d4fc5b954aa5ae23b75f9c0b33d7"
      unitRef="U002">-9773000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20221231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_78617ebb8f7e4bfda6f9116d491052f8"
      unitRef="U002">59891000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20221231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_41819c31b72a4ecb9ade84c2134a35cd"
      unitRef="U002">-1900000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20221231"
      decimals="-3"
      id="Fact_1fc112bf63ef4ea296c4f12d66bb8a0e"
      unitRef="U002">51463000</us-gaap:StockholdersEquity>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20230101to20230331_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_5cf7bbe8e5db475694b8f4b896c8dc71"
      unitRef="U002">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20230101to20230331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_484e86501e7b4ccea17155630bb1ba07"
      unitRef="U002">228000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20230101to20230331_StatementEquityComponentsAxis_TreasuryStockCommonMember"
      decimals="-3"
      id="Fact_96071abbc37342828682ae8f01e11118"
      unitRef="U002">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20230101to20230331_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_e75d1c78dee8468bacffe61f6e06caa3"
      unitRef="U002">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20230101to20230331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_29da05db71a147a4ae581608293befb6"
      unitRef="U002">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_5640774c8edb444d9e346df08e65756c"
      unitRef="U002">228000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross
      contextRef="c20230101to20230331_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_720ec2cf0e834e7bb3726ab16c056ff4"
      unitRef="U001">17518</us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="c20230101to20230331_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_22bd1872188041bdade2064d5176cf35"
      unitRef="U002">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="c20230101to20230331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_55b4c1b4d856433885a80dc8dbe97456"
      unitRef="U002">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="c20230101to20230331_StatementEquityComponentsAxis_TreasuryStockCommonMember"
      decimals="-3"
      id="Fact_27835bcbe4874fc59425001a1a38c8fb"
      unitRef="U002">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="c20230101to20230331_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_22d596acb3d644418b16612dff21ebbc"
      unitRef="U002">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="c20230101to20230331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_33ce46dae004425382e942fa0fefede7"
      unitRef="U002">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_8fa40c36e6f54d4e9710f322b0d71fe7"
      unitRef="U002">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:NetIncomeLoss
      contextRef="c20230101to20230331_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_0aad320f435140348e456013aacb8428"
      unitRef="U002">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20230101to20230331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_e772bbb0fa3441fc8bd977632ca888d1"
      unitRef="U002">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20230101to20230331_StatementEquityComponentsAxis_TreasuryStockCommonMember"
      decimals="-3"
      id="Fact_19f32acb9ebc4e9998c894328aa82e8f"
      unitRef="U002">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20230101to20230331_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_359afc7f85d34f55bf57f4c89a83e6ad"
      unitRef="U002">664000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20230101to20230331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_2d96d987af0d45478cd17fee399dcac5"
      unitRef="U002">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_fc4b1c5c80204ded84a5aba5fc77054c"
      unitRef="U002">664000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20230101to20230331_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_616faa29ce114fafaffad9bfbcd4637c"
      unitRef="U002">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20230101to20230331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_6a1cd8d2009a405d8d4b0a2f4d341a4f"
      unitRef="U002">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20230101to20230331_StatementEquityComponentsAxis_TreasuryStockCommonMember"
      decimals="-3"
      id="Fact_c79f56d22580457e967e044e14e50d27"
      unitRef="U002">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20230101to20230331_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_41a8e27cc90a4effaa8ff31cdfc2941b"
      unitRef="U002">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20230101to20230331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_73e8b9c8699d40a7bad7449ed7e2ecec"
      unitRef="U002">-39000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_1c558ab45a6a4fd69f80021bb799efce"
      unitRef="U002">-39000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:SharesOutstanding
      contextRef="c20230331_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_49292fae248a47c3b7bc92925ccf231d"
      unitRef="U001">8310667</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="c20230331_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_267c355fdc1c440e9d91feb7b3a9e346"
      unitRef="U002">23000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20230331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_2fd18069852148ff8b47e2de1e89fc3f"
      unitRef="U002">3450000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20230331_StatementEquityComponentsAxis_TreasuryStockCommonMember"
      decimals="-3"
      id="Fact_16150866d7b64f528d9af382a387b1ca"
      unitRef="U002">-9773000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20230331_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_95e1a08ac48640699d8f0669329d1e51"
      unitRef="U002">60555000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20230331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_84582054a3ea4b339790817e948d687e"
      unitRef="U002">-1939000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20230331"
      decimals="-3"
      id="Fact_dfc67567ffa744048bfafebb4beeec9d"
      unitRef="U002">52316000</us-gaap:StockholdersEquity>
    <us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock
      contextRef="c20240101to20240331"
      id="Text_b31f60fb8f7b413b8381650964e68434">
&lt;div style="text-align: justify; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.&#160; BASIS OF PRESENTATION AND CERTAIN SIGNIFICANT ACCOUNTING POLICIES&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Tandy Leather Factory, Inc. (&#x201c;TLF,&#x201d; &#x201c;we,&#x201d; &#x201c;our,&#x201d; &#x201c;us,&#x201d; &#x201c;the&#x201d; Company,&#x201d; &#x201c;Tandy,&#x201d; or &#x201c;Tandy Leather&#x201d; mean Tandy Leather Factory, Inc., together with its subsidiaries)&lt;span style="font-style: italic;"&gt; &lt;/span&gt;is one of the world&#x2019;s largest specialty retailers of leather and leathercraft-related items.&#160; Founded in 1919 in Fort Worth, Texas, the Company introduced leathercrafting to millions of American and later
          Canadian and other international customers and has built a track record as the trusted source of quality leather, tools, hardware, supplies, kits and teaching materials for leatherworkers everywhere.&#160; Today, our mission remains to build on our
          legacy of inspiring the timeless art and trade of leatherworking.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;What differentiates Tandy from the competition is our high brand awareness and strong brand equity and loyalty, our network of retail stores that provides
          convenience, a high-touch customer service experience, and a hub for the local leathercrafting community, and our 100-year heritage. We believe that this combination of qualities is unique to Tandy and gives the brand competitive advantages that
          are difficult for others to replicate.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;We sell our products primarily through company-owned stores and through orders generated from our global websites, &lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;"&gt;and through direct account representatives in our commercial division&lt;/span&gt;. We also manufacture leather lace, cut
          leather pieces and most of the do-it-yourself kits that are sold in our stores and on our websites.&#160; We also offer production services to our business customers such as cutting (&#x201c;clicking&#x201d;), splitting, and some assembly. We maintain our principal
          offices at 1900 Southeast Loop 820, Fort Worth, Texas 76140.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company currently operates a total of 102 retail
          stores. There are 91 stores in the United States (&#x201c;U.S.&#x201d;), ten stores in Canada and one store in Spain.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company&#x2019;s common shares currently trade on the Nasdaq Capital Market under the symbol &#x201c;TLF.&#x201d;&lt;/div&gt;

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

&lt;div style="text-align: justify; font-family: 'Times New Roman'; background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;We operate as a &lt;span style="-sec-ix-hidden:Fact_53019d5e2b204ab49d2b6ecf90dbadfa"&gt;&lt;span style="-sec-ix-hidden:Fact_07119480a0aa41a9af1c991f8ee8cf42"&gt;single&lt;/span&gt;&lt;/span&gt; segment and report on a consolidated basis.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;T&lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;"&gt;he accompanying unaudited Condensed Consolidated Financial Statements have been prepared in accordance with accounting principles generally accepted in the United States of America (&#x201c;GAAP&#x201d;) for interim financial information and with the
            instructions to Form 10-Q and Article 8 of Regulation S-X. Accordingly, they do not include all of the information and footnotes required by GAAP for annual audited financial statements. In the opinion of management, the accompanying unaudited
            Condensed Consolidated Financial Statements for Tandy Leather Factory, Inc. and its consolidated subsidiaries contain all adjustments (consisting of normal recurring adjustments) necessary to present fairly our financial position as of March
            31, 2024 and December 31, 2023, our results of operations and our cash flows for the three months ended March 31, 2024 and 2023, and our statements of stockholders&#x2019; equity as of and for the three months ended March 31, 2024 and 2023. The
            preparation of financial statements in accordance with GAAP requires the use of estimates that affect the reported value of assets, liabilities, revenues and expenses. These estimates are based on historical experience and various other factors
            that are believed to be reasonable under the circumstances, the results of which form the basis for the Company&#x2019;s conclusions. The Company continually evaluates the information used to make these estimates as the business and the economic
            environment changes. Actual results may differ from these estimates, and estimates are subject to change due to modifications in the underlying conditions or assumptions. These unaudited Condensed Consolidated Financial Statements should be
            read in conjunction with the audited Consolidated Financial Statements and accompanying notes included in our Form 10-K for the year ended December 31, 2023&lt;/span&gt;.&lt;/div&gt;

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

&lt;div style="text-align: justify; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Significant Accounting Policies&lt;/div&gt;

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

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Cash and cash equivalents&lt;/span&gt;&lt;/span&gt;. The Company considers investments with a maturity when purchased of three months or less
          to be cash equivalents. All credit card, debit card and electronic transfer transactions that process in less than seven days are classified as cash and cash equivalents.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Foreign currency translation and transactions&lt;/span&gt;&lt;/span&gt;. Foreign currency translation adjustments arise from activities of our
          foreign subsidiaries.&#160; Results of operations are translated into U.S. dollars using the average exchange rates during the period, while assets and liabilities are translated using period-end exchange rates.&#160; Foreign currency translation
          adjustments of assets and liabilities are recorded in stockholders&#x2019; equity and presented net of tax. Gains and losses resulting from foreign currency translations are &lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;"&gt;reported in the Condensed Consolidated Statements of Operations and Comprehensive Income (Loss) under the caption &#x201c;Foreign currency
            translation adjustments, net of tax&#x201d; for all periods presented&lt;/span&gt;.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Revenue Recognition.&lt;/span&gt;&lt;/span&gt;&#160; Our revenue is earned from sales of merchandise and generally occurs via three methods: (1) at
          the store counter, (2) via web sales, and (3) sales of product directly to commercial customers. We recognize revenue when we satisfy the performance obligation of transferring control of product merchandise over to a customer. At the store
          counter, our performance obligation is met, and revenue is recognized when a sales transaction occurs with a customer. When merchandise is shipped to a customer, our performance obligation is met, and revenue is recognized when control passes to
          the customer. Shipping terms are normally free on board (&#x201c;FOB&#x201d;) shipping point and control passes when the merchandise is shipped to the customer. Sales tax and comparable foreign tax are excluded from net sales, while shipping charged to our
          customers is included in net sales. Net sales are based on the amount of consideration that we expect to receive, reduced by estimates for future merchandise returns.&lt;/div&gt;

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

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The &lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;"&gt;sales return allowance is based each year on historical customer return behavior and other known factors and reduces net sales and cost of sales, accordingly. The sales return allowance included in accrued expense and other
            liabilities was $0.1 million, $0.1
            million, and $0.2 million as of March 31, 2024, December 31, 2023, and January 1, 2023. The estimated value of merchandise expected
            to be returned included in other current assets was $0.1 million as of March 31, 2024, December 31, 2023, and January 1, 2023&lt;/span&gt;.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;We &lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;"&gt;record a gift card liability for the unfulfilled performance obligation on the date we issue a gift card to a customer. We record revenue and reduce the gift card liability as the customer redeems the gift card. In addition, for gift
            card breakage, we recognize a proportionate amount for the expected unredeemed gift cards over the expected customer redemption period, which is one year. As of March 31, 2024, December 31, 2023 and January1, 2023, our gift card liability, included in accrued expenses and other liabilities, was $0.2 million, $0.3 million and $0.3 million, respectively. We recognized gift card revenue of $0.2 million for the three months ended March 31, 2024 and 2023&lt;/span&gt;.&lt;/div&gt;

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

&lt;div style="text-align: justify; font-family: 'Times New Roman'; background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;For the three
            months ended March 31, 2024 and 2023, we recognized $0.1 million and $0.2 million respectively in net sales associated with gift cards.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Disaggregated Revenue.&lt;/span&gt;&#160; &lt;/span&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt; color: #000000;"&gt;In the following table, revenue for the three months ended March 31,
          2024 and 2023 is disaggregated by geographic areas as follows:&lt;/span&gt;&lt;/div&gt;

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

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Three Months Ended March 31,&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman',Times,serif; font-size: 10pt; font-style: italic;"&gt;(in thousands)&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;2024&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;2023&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;United States&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;17,085&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;18,099&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Canada&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,897&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,907&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;Other &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;293&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;354&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman',Times,serif; font-size: 10pt; font-weight: bold;"&gt;Net sales&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;19,275&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;20,360&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: justify;"&gt;Geographic sales information is based on the location of the customer. As a percentage of our consolidated net sales, excluding
            Canada, our other international net sales were less than 2.0% for the three months ended March 31, 2024, and 2023 respectively.&lt;/div&gt;

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

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-style: italic; font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-variant: normal; text-transform: none;"&gt;Discounts&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-variant: normal; text-transform: none;"&gt;&lt;span style="text-decoration: underline;"&gt;.&lt;/span&gt; &lt;span style="font-style: normal;"&gt;We offer six&#160; classes of customer discounts:&#160; 1) Retail, 2) Military/First Responder, 3) Business, 4) Commercial, 5) Commercial Pro, and 6) Employees.
              There are no other classes of discounts and any discounts given will fall into one of these six categories. Such discounts are not
              deemed to be variable consideration nor convey a material right to these customers since the discounted pricing they receive in a discount class is not incremental to others within the same class and there is no retrospective impact of such
              discounts. As a result, sales are reported after deduction of discounts at the point of sale. We do not pay slotting fees or make other payments to resellers.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;

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

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Operating&lt;/span&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;"&gt;&#160;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;expense&lt;/span&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;"&gt;s&lt;/span&gt;. Operating expenses include all
          selling, general and administrative costs, including wages and benefits, rent and occupancy costs, depreciation, advertising, store operating expenses, outbound freight charges (to ship merchandise to customers), and corporate office costs.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Property and equipment, net of accumulated depreciation&lt;/span&gt;&lt;/span&gt;. Property and equipment are stated at cost. Depreciation is
          computed using the straight-line method over the estimated useful lives of the assets, which are &lt;span style="-sec-ix-hidden:Fact_138de38eb2164d4da489f5d1fc8ccb33"&gt;three&lt;/span&gt; to ten years for equipment and machinery, &lt;span style="-sec-ix-hidden:Fact_081f9d3879424da5a84f1d889d24a907"&gt;seven&lt;/span&gt;
          to fifteen years for furniture and fixtures, five years for vehicles, and forty years for buildings and related improvements. Leasehold
          improvements are amortized over the lesser of the life of the lease or the useful life of the asset. Repairs and maintenance costs are expensed as incurred but are capitalized if extend the life of the assets.&lt;/div&gt;

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

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Inventory&lt;/span&gt;&lt;/span&gt;. Inventory is stated at the lower of first-in, first-out (&#x201c;FIFO&#x201d;) cost or net realizable value, and FIFO
          layers are maintained at the location level. Finished goods held for sale include the cost of merchandise purchases, the costs to bring the merchandise to our Texas distribution center, warehousing and handling expenditures, and distributing and
          delivering merchandise to our stores. These costs include depreciation of long-lived assets utilized in acquiring, warehousing and distributing inventory. Manufacturing inventory including raw materials and work-in-process is valued on a first
          in, first out basis using full absorption accounting which includes material, labor, and other applicable manufacturing overhead. Carrying values of inventory are analyzed and, to the extent that the cost of inventory exceeds the net realizable
          value, provisions are made to reduce the carrying amount of the inventory.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;We regularly review all inventory items to determine if there are (i) damaged goods (e.g., for leather, excessive scars or damage from ultra-violet (&#x201c;UV&#x201d;) light),
          (ii) items that need to be removed from our product line (e.g., slow-moving items, inability of a supplier to provide items of acceptable quality or quantity, and to maintain freshness in the product line) and (iii) pricing actions that need to
          be taken to adequately value our inventory at the lower of cost or net realizable value.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Since the determination of net realizable value of inventory involves both estimation and judgement with regard to market values and reasonable costs to sell,
          differences in these estimates could result in ultimate valuations that differ from the recorded asset.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The majority of inventory purchases and commitments are made in U.S. dollars in order to limit the Company&#x2019;s exposure to foreign currency fluctuations. Goods shipped
          to us are recorded as inventory owned by us when the risk of loss shifts to us from the supplier.&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br/&gt;
          &lt;/span&gt;&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Inventory is physically counted partially during each quarter and fully counted at year-end in the Texas distribution center. At the store
          level, inventory is partially&#160; counted each quarter for high value items and fully counted at year-end. Inventory is then adjusted in our accounting system to reflect actual count results. &lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-style: italic;"&gt;(in thousands)&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;March 31, 2024&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;December 31, 2023&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom;" valign="bottom"&gt;
                &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;On hand:&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
                &lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Finished goods held for sale&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0);"&gt;33,625&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0);"&gt;33,350&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
                &lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Raw materials and work in process&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0);"&gt;1,248&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0);"&gt;1,774&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;
                &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Inventory in transit&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0);"&gt;1,802&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0);"&gt;2,869&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
                &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;"&gt;TOTAL&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0); font-weight: bold;"&gt;$&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0); font-weight: bold;"&gt;36,675&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0); font-weight: bold;"&gt;$&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0); font-weight: bold;"&gt;37,993&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-style: italic;"&gt;Leases&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;.&lt;/span&gt; We lease certain real estate for our retail store locations and may
          lease warehouse equipment for our Texas distribution center under long-term lease agreements; however, as of the end of December 31, 2023, we acquired the warehouse equipment and is now a part of our fixed assets. We determine if an arrangement
          is a lease at inception and recognize right-of-use (&#x201c;ROU&#x201d;) assets and lease liabilities at commencement date based on the present value of the lease payments over the lease term.&lt;span style="color: rgb(0, 0, 0);"&gt; We elected not to record leases
            with an initial term of 12 months or less on the balance sheet for all our asset classes.&lt;/span&gt;&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;For operating leases, the present value of our lease liabilities may include: (1) rental payments adjusted for inflation or market rates, and (2) lease terms with
          options to renew the lease or options to purchase leased equipment, when it is reasonably certain we will exercise such an option. The exercise of lease renewal or purchase option is generally at our discretion.&#160; Payments based on a change in an
          index or market rate are not considered in the determination of lease payments for purposes of measuring the related lease liability. We discount lease payments using our incremental borrowing rate based on information available as of the
          measurement date.&lt;/div&gt;

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

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;We recognize rent expense related to our &lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;"&gt;operating leases assets on a straight-line basis over the lease term. Rent expense is recorded in operating expenses.&lt;br/&gt;
          &lt;/span&gt;&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;For finance leases, our right-of-use assets are amortized on a straight-line basis over the earlier of the useful life of the right-of-use asset or the end of the
          lease term with rent expense recorded to operating expenses.&#160; We adjust the lease liability to reflect lease payments made during the period and interest incurred on the lease liability using the effective interest method. &lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;"&gt;The interest expense incurred is recorded in interest expense on the Condensed Consolidated
            Statements of Operations and Comprehensive Income&lt;/span&gt;.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The depreciable life of related leasehold improvements is based on the shorter of the useful life or the lease term. We also perform interim reviews of our lease
          assets for impairment when evidence exists that the carrying value of an asset group, including a lease asset, may not be recoverable.&lt;/div&gt;

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

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;None of our lease agreements contain contingent rental payments, material residual value guarantees or material restrictive covenants.&#160; We have no sublease
          agreements and no lease agreements in which we are named as a lessor.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Impairment of Long-Lived Assets&lt;/span&gt;&lt;/span&gt;. We evaluate long-lived assets on a quarterly basis to identify events or changes in
          circumstances (&#x201c;triggering events&#x201d;) that indicate the carrying value of certain assets may not be recoverable. Upon the occurrence of a triggering event, ROU lease assets, property and equipment and definite-lived intangible assets are reviewed
          for impairment and an impairment loss is recorded in the period in which it is determined that the carrying amount of the assets is not recoverable. The determination of recoverability is made based upon the estimated undiscounted future net cash
          flows of assets grouped at the lowest level for which there are identifiable cash flows independent of the cash flows of other groups of assets with such cash flows to be realized over the estimated remaining useful life of the primary asset
          within the asset group. The Company determined the lowest level of identifiable cash flows that are independent of other asset groups to be primarily at the individual store level. If the estimated undiscounted future net cash flows for a given
          store are less than the carrying amount of the related store assets, an impairment loss is determined by comparing the estimated fair value with the carrying value of the related assets. The impairment loss is then allocated across the asset
          group&#x2019;s major classifications which in this case are operating lease assets and property and equipment. Triggering events at the store level could include material declines in operational and financial performance or planned changes in the use of
          assets, such as store relocation or store closure. This evaluation requires management to make judgements relating to future cash flows, growth rates and economic and market conditions. The fair value of an asset group is estimated using a
          discounted cash flow valuation method.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Fair Value of Financial Instruments&lt;/span&gt;&lt;/span&gt;. We measure fair value as an exit price, which is the amount that would be
          received to sell an asset or paid to transfer a liability in an orderly transaction between market participants. As a basis for considering such assumptions, accounting standards establish a three-tier fair value hierarchy, which prioritizes the
          inputs used in the valuation methodologies in measuring fair value:&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div&gt;
          &lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 36pt; vertical-align: top;"&gt;
                  &lt;div style="margin-left: 18pt;"&gt;&lt;span style="font-family: Times New Roman"&gt;&#x25cf;&lt;/span&gt;&lt;/div&gt;
                &lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top;"&gt;
                  &lt;div style="text-align: justify;"&gt;Level 1 &#x2013; observable inputs that reflect quoted prices in active markets for identical assets or liabilities.&lt;/div&gt;
                &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
        &lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div&gt;
          &lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 36pt; vertical-align: top;"&gt;
                  &lt;div style="margin-left: 18pt;"&gt;&lt;span style="font-family: Times New Roman"&gt;&#x25cf;&lt;/span&gt;&lt;/div&gt;
                &lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top;"&gt;
                  &lt;div style="text-align: justify;"&gt;Level 2 &#x2013; significant observable inputs other than quoted prices in active markets for similar assets and liabilities, such as quoted prices for identical or similar assets or liabilities in markets that
                    are not active; or other inputs that are observable or can be corroborated by observable market data.&lt;/div&gt;
                &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
        &lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div&gt;
          &lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 36pt; vertical-align: top;"&gt;
                  &lt;div style="margin-left: 18pt;"&gt;&lt;span style="font-family: Times New Roman"&gt;&#x25cf;&lt;/span&gt;&lt;/div&gt;
                &lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top;"&gt;
                  &lt;div style="text-align: justify;"&gt;Level 3 &#x2013; significant unobservable inputs reflecting our own assumptions, consistent with reasonably available assumptions made by other market participants.&lt;/div&gt;
                &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
          &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
          &lt;/div&gt;

        &lt;/div&gt;

&lt;div&gt;&lt;span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;Classification of the financial asset or liability within the hierarchy is
          determined based on the lowest level input that is significant to the fair value measurement. &lt;/span&gt;&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Our principal financial instruments held consist of T-Bills as of March 31, 2024 and December 31, 2023 which fall under level 1 of the fair value hierarchy; accounts
          receivable - trade, accounts payable - &lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;"&gt;trade, as of March 31, 2024 and
            December 31, 2023,&#160; all of which fall under Level 3 of the fair value hierarchy&lt;/span&gt;.&#160; As of March 31, 2024 and December 31, 2023, the carrying values of our financial instruments, included in our Consolidated Balance Sheets, approximated
          their fair values. There were no transfers into or out of Levels 1, 2 and 3 during the three months ended March 31, 2024 and 2023.&lt;/div&gt;

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

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Income Taxes&lt;/span&gt;&lt;/span&gt;. Income taxes are estimated for each jurisdiction in which we operate. This involves assessing current
          tax exposure together with temporary differences resulting from differing treatment of items for tax and financial statement accounting purposes. Any resulting deferred tax assets are evaluated for recoverability based on estimated future taxable
          income. To the extent it is more-likely-than-not that all or a portion of a deferred tax asset will not be realized, a valuation allowance is recorded.&#160; Our evaluation regarding whether a valuation allowance is required or should be adjusted also
          considers, among other things, the nature, frequency, and severity of recent losses, forecasts of future profitability and the duration of statutory carryforward periods.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred tax assets and liabilities are measured using the enacted tax rates in effect in the years when those temporary differences are expected to reverse. The
          effect on deferred taxes from a change in tax rate is recognized through continuing operations in the period that includes the enactment date of the change. Changes in tax laws and rates could affect recorded deferred tax assets and liabilities
          in the future.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;A tax benefit from an uncertain tax position may be recognized when it is more-likely-than-not that the position will be sustained upon examination, including
          resolutions of any related appeals or litigation processes, based on the technical merits. Income tax positions must meet a more-likely-than-not recognition threshold to be recognized.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;We recognize tax liabilities for uncertain tax positions and adjust these liabilities when our judgement changes as a result of the evaluation of new information not
          previously available. Due to the complexity of some of these uncertainties, the ultimate resolution may result in a payment that is materially different from the current estimate of the tax liabilities. These differences will be reflected as
          increases or decreases to income tax expense and the effective tax rate in the period in which new information becomes available. We recognize interest and/or penalties related to all tax positions in income tax expense. To the extent that
          accrued interest and penalties do not ultimately become payable, amounts accrued will be reduced and reflected as a reduction of the overall income tax provision in the period that such determination is made.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;We may be subject to periodic audits by the Internal Revenue Service and other taxing authorities. These audits may challenge certain of our tax positions, such as
          the timing and amount of deductions and allocation of taxable income to the various jurisdictions.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Stock-based compensation&lt;/span&gt;&lt;/span&gt;. The Company&#x2019;s stock-based compensation relates primarily to restricted stock unit (&#x201c;RSU&#x201d;)
          awards.&#160; Accounting guidance requires measurement and recognition of compensation expense at an amount equal to the grant date fair value. Compensation expense is recognized for service-based stock awards on a straight-line basis or ratably over
          the requisite service period, based on the closing price of the Company&#x2019;s stock on the date of grant. The service-based awards typically vest ratably over the requisite service period, provided that the participant is employed on the vesting
          date. Compensation expense is reduced by actual forfeitures as they occur over the requisite service period of the awards.&lt;/div&gt;

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

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Performance-based RSUs vest, if at all, upon the Company satisfying certain performance targets. The Company records compensation expense for awards with a
          performance condition when it is probable that the condition will be achieved.&#160; If the Company determines it is not probable a performance condition will be achieved, no compensation expense is recognized. If the Company changes its assessment in
          a subsequent period and concludes it is probable a performance condition will be achieved, the Company will recognize compensation expense ratably between the period of the change in assessment through the expected date of satisfying the
          performance condition for vesting. If the Company subsequently assesses that it is no longer probable that a performance condition will be achieved, the accumulated expense that has been previously recognized will be reversed. The compensation
          expense ultimately recognized, if any, related to performance-based awards will equal the grant date fair value based on the number of shares for which the performance condition has been satisfied.&#160; We issue shares from authorized shares upon the
          lapsing of vesting restrictions on RSUs. We do not use cash to settle equity instruments issued under stock-based compensation awards. &lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;"&gt;The payments of the employees&#x2019; tax liability for a portion of the vested shares are satisfied by withholding shares with a fair value equal to the tax liability&lt;/span&gt;.&lt;/div&gt;

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

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Accounts Receivable - Trade and Expected Credit Losses&lt;/span&gt;&lt;/span&gt;. Our receivables primarily arise from the sale of merchandise
          to customers that have applied for and been granted credit. Accounts receivable are stated at amounts due, net of an allowance. Accounts receivable are generally due within 30 days of invoicing. We estimate expected credit losses based on factors
          such as the composition of accounts receivable, the age of the accounts, historical bad debt experience, and our evaluation of the financial condition and past collection history of each customer. Management believes that the historical loss
          information it has compiled is a reasonable base on which to determine expected credit losses for trade receivables held at March 31, 2024, because the composition of the trade receivables at that date is consistent with that used in developing
          the historical credit-loss percentages (i.e., the similar risk characteristics of its customers and its credit practices have not changed significantly over time). Accordingly, the allowance for expected credit losses at March 31, 2024, December
          31, 2023, and January 1, 2023 each totaled less than $0.1 million.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: justify;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Other Intangible Assets&lt;/span&gt;&lt;/span&gt;. Our intangible assets and related accumulated amortization relate to trademarks and
          copyrights that are definite-lived intangibles and are subject to amortization. The weighted average amortization period is 15 years
          for trademarks and copyrights. Amortization expense related to other intangible assets was less than $0.01 million during each of
          the three months ended March 31, 2024 and 2023 was recorded in operating expenses. Based on the current amount of intangible assets subject to amortization, we estimate amortization expense to be less than $0.01 million annually over the next five years. Our &#x201c;Other intangible assets&#x201d; will be fully amortized as of June 30 2024 but&#160; is now included in
          &#x201c;Other assets&#x201d; on the face of the balance sheet.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Comprehensive Income&lt;/span&gt;&lt;/span&gt;. Comprehensive income includes net income and certain other items that are recorded directly to
          stockholders&#x2019; equity. The Company&#x2019;s only source of other comprehensive income is foreign currency translation adjustments, and those adjustments are presented net of tax.&lt;/div&gt;
</us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock>
    <us-gaap:NumberOfStores
      contextRef="c20240331"
      decimals="0"
      id="Fact_a5184645846346019da2a34646a365e8"
      unitRef="U004">102</us-gaap:NumberOfStores>
    <us-gaap:NumberOfStores
      contextRef="c20240331_StatementGeographicalAxis_US"
      decimals="0"
      id="Fact_182cd276194a4c548053d362ab1901de"
      unitRef="U004">91</us-gaap:NumberOfStores>
    <us-gaap:NumberOfStores
      contextRef="c20240331_StatementGeographicalAxis_CA"
      decimals="INF"
      id="Fact_6d815a5188fd469e863f47c8b1befc52"
      unitRef="U004">10</us-gaap:NumberOfStores>
    <us-gaap:NumberOfStores
      contextRef="c20240331_StatementGeographicalAxis_ES"
      decimals="INF"
      id="Fact_a87e7c2db2bf4a9cac05bdc3a8427139"
      unitRef="U004">1</us-gaap:NumberOfStores>
    <us-gaap:CashAndCashEquivalentsPolicyTextBlock
      contextRef="c20240101to20240331"
      id="Text_8f9875ae87af46f3ad28375a68e33c70">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Cash and cash equivalents&lt;/span&gt;&lt;/span&gt;. The Company considers investments with a maturity when purchased of three months or less
          to be cash equivalents. All credit card, debit card and electronic transfer transactions that process in less than seven days are classified as cash and cash equivalents.&lt;/div&gt;
</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
    <us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock
      contextRef="c20240101to20240331"
      id="Text_4491e6514c9647dd8ad490c67638839d">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Foreign currency translation and transactions&lt;/span&gt;&lt;/span&gt;. Foreign currency translation adjustments arise from activities of our
          foreign subsidiaries.&#160; Results of operations are translated into U.S. dollars using the average exchange rates during the period, while assets and liabilities are translated using period-end exchange rates.&#160; Foreign currency translation
          adjustments of assets and liabilities are recorded in stockholders&#x2019; equity and presented net of tax. Gains and losses resulting from foreign currency translations are &lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;"&gt;reported in the Condensed Consolidated Statements of Operations and Comprehensive Income (Loss) under the caption &#x201c;Foreign currency
            translation adjustments, net of tax&#x201d; for all periods presented&lt;/span&gt;.&lt;/div&gt;
</us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock>
    <us-gaap:RevenueFromContractWithCustomerPolicyTextBlock
      contextRef="c20240101to20240331"
      id="Text_adb845aca409415189a1f13f99267736">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Revenue Recognition.&lt;/span&gt;&lt;/span&gt;&#160; Our revenue is earned from sales of merchandise and generally occurs via three methods: (1) at
          the store counter, (2) via web sales, and (3) sales of product directly to commercial customers. We recognize revenue when we satisfy the performance obligation of transferring control of product merchandise over to a customer. At the store
          counter, our performance obligation is met, and revenue is recognized when a sales transaction occurs with a customer. When merchandise is shipped to a customer, our performance obligation is met, and revenue is recognized when control passes to
          the customer. Shipping terms are normally free on board (&#x201c;FOB&#x201d;) shipping point and control passes when the merchandise is shipped to the customer. Sales tax and comparable foreign tax are excluded from net sales, while shipping charged to our
          customers is included in net sales. Net sales are based on the amount of consideration that we expect to receive, reduced by estimates for future merchandise returns.&lt;/div&gt;

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

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The &lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;"&gt;sales return allowance is based each year on historical customer return behavior and other known factors and reduces net sales and cost of sales, accordingly. The sales return allowance included in accrued expense and other
            liabilities was $0.1 million, $0.1
            million, and $0.2 million as of March 31, 2024, December 31, 2023, and January 1, 2023. The estimated value of merchandise expected
            to be returned included in other current assets was $0.1 million as of March 31, 2024, December 31, 2023, and January 1, 2023&lt;/span&gt;.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;We &lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;"&gt;record a gift card liability for the unfulfilled performance obligation on the date we issue a gift card to a customer. We record revenue and reduce the gift card liability as the customer redeems the gift card. In addition, for gift
            card breakage, we recognize a proportionate amount for the expected unredeemed gift cards over the expected customer redemption period, which is one year. As of March 31, 2024, December 31, 2023 and January1, 2023, our gift card liability, included in accrued expenses and other liabilities, was $0.2 million, $0.3 million and $0.3 million, respectively. We recognized gift card revenue of $0.2 million for the three months ended March 31, 2024 and 2023&lt;/span&gt;.&lt;/div&gt;

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

&lt;div style="text-align: justify; font-family: 'Times New Roman'; background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;For the three
            months ended March 31, 2024 and 2023, we recognized $0.1 million and $0.2 million respectively in net sales associated with gift cards.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Disaggregated Revenue.&lt;/span&gt;&#160; &lt;/span&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt; color: #000000;"&gt;In the following table, revenue for the three months ended March 31,
          2024 and 2023 is disaggregated by geographic areas as follows:&lt;/span&gt;&lt;/div&gt;

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

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Three Months Ended March 31,&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman',Times,serif; font-size: 10pt; font-style: italic;"&gt;(in thousands)&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;2024&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;2023&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;United States&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;17,085&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;18,099&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Canada&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,897&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,907&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;Other &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;293&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;354&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman',Times,serif; font-size: 10pt; font-weight: bold;"&gt;Net sales&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;19,275&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;20,360&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: justify;"&gt;Geographic sales information is based on the location of the customer. As a percentage of our consolidated net sales, excluding
            Canada, our other international net sales were less than 2.0% for the three months ended March 31, 2024, and 2023 respectively.&lt;/div&gt;
</us-gaap:RevenueFromContractWithCustomerPolicyTextBlock>
    <us-gaap:ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss
      contextRef="c20240331"
      decimals="-5"
      id="Fact_4602f1b899bb4dcfbd61c75876d57e10"
      unitRef="U002">100000</us-gaap:ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss>
    <us-gaap:ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss
      contextRef="c20231231"
      decimals="-5"
      id="Fact_4c504a3a603c4c008d0fdc3cfae5d832"
      unitRef="U002">100000</us-gaap:ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss>
    <us-gaap:ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss
      contextRef="c20221231"
      decimals="-5"
      id="Fact_9e60dae770034dac9d3cb1943d77b1e0"
      unitRef="U002">200000</us-gaap:ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss>
    <tlfa:InventoryMerchandiseExpectedToBeReturned
      contextRef="c20221231"
      decimals="-5"
      id="Fact_ebb5fdf040d347128fbad24a13dbe38a"
      unitRef="U002">100000</tlfa:InventoryMerchandiseExpectedToBeReturned>
    <tlfa:InventoryMerchandiseExpectedToBeReturned
      contextRef="c20231231"
      decimals="-5"
      id="Fact_57e295b3b24a47aab2819173cfd48159"
      unitRef="U002">100000</tlfa:InventoryMerchandiseExpectedToBeReturned>
    <tlfa:InventoryMerchandiseExpectedToBeReturned
      contextRef="c20240331"
      decimals="-5"
      id="Fact_0880d3d57a114cc4b60a68e2ffe3c63d"
      unitRef="U002">100000</tlfa:InventoryMerchandiseExpectedToBeReturned>
    <tlfa:GiftCardRedemptionPeriod
      contextRef="c20240101to20240331"
      id="Fact_06217b9796ac4ff3b2181a17dcb60e0a">P1Y</tlfa:GiftCardRedemptionPeriod>
    <us-gaap:ContractWithCustomerLiability
      contextRef="c20240331_BalanceSheetLocationAxis_AccountsPayableAndAccruedLiabilitiesMember"
      decimals="-5"
      id="Fact_b26176e166994aaba275a647fbcf87b7"
      unitRef="U002">200000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiability
      contextRef="c20231231_BalanceSheetLocationAxis_AccountsPayableAndAccruedLiabilitiesMember"
      decimals="-5"
      id="Fact_bd76e3970a8249bdaf90d4ffaaf29c30"
      unitRef="U002">300000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiability
      contextRef="c20221231_BalanceSheetLocationAxis_AccountsPayableAndAccruedLiabilitiesMember"
      decimals="-5"
      id="Fact_deee919bdefb4185b8a01394384ccbb3"
      unitRef="U002">300000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="c20230101to20230331"
      decimals="-5"
      id="Fact_f364f7d9ff0e4e5bae13a6a85fc333d4"
      unitRef="U002">200000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="c20240101to20240331"
      decimals="-5"
      id="Fact_dcfb469364d34985a0b4b2db5185413f"
      unitRef="U002">200000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:DeferredRevenueRevenueRecognized1
      contextRef="c20240101to20240331"
      decimals="-5"
      id="Fact_5d2a193581084ee590bace2b11690230"
      unitRef="U002">100000</us-gaap:DeferredRevenueRevenueRecognized1>
    <us-gaap:DeferredRevenueRevenueRecognized1
      contextRef="c20230101to20230331"
      decimals="-5"
      id="Fact_3293a9d2cc0f49d39d9cfb98f221bdae"
      unitRef="U002">200000</us-gaap:DeferredRevenueRevenueRecognized1>
    <us-gaap:DisaggregationOfRevenueTableTextBlock
      contextRef="c20240101to20240331"
      id="Text_a271cacf781f460eb120ced1bce00dad">&lt;span style="font-family: 'Times New Roman'; font-size: 10pt; color: #000000;"&gt;In the following table, revenue for the three months ended March 31,
          2024 and 2023 is disaggregated by geographic areas as follows:&lt;/span&gt;
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
        &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Three Months Ended March 31,&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman',Times,serif; font-size: 10pt; font-style: italic;"&gt;(in thousands)&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;2024&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;2023&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;United States&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;17,085&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;18,099&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 7.2pt; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Canada&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,897&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,907&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;Other &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;293&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;354&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-align: left; text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman',Times,serif; font-size: 10pt; font-weight: bold;"&gt;Net sales&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;19,275&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;20,360&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240101to20240331_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_f2ab9224d9834239b0b9bcc528dbb753"
      unitRef="U002">17085000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230101to20230331_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_1752b2d7f5c5463f8ae6d1f4688b35c0"
      unitRef="U002">18099000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240101to20240331_StatementGeographicalAxis_CA"
      decimals="-3"
      id="Fact_72a095a7b54e4aff9a6daae3f986a548"
      unitRef="U002">1897000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230101to20230331_StatementGeographicalAxis_CA"
      decimals="-3"
      id="Fact_45a06143221a40568a3dc33c55a4e95a"
      unitRef="U002">1907000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240101to20240331_StatementGeographicalAxis_OtherCountriesMember"
      decimals="-3"
      id="Fact_c859fe9a996c4aaeb957e3479e7aaa2d"
      unitRef="U002">293000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230101to20230331_StatementGeographicalAxis_OtherCountriesMember"
      decimals="-3"
      id="Fact_1700a509e8bf4cbb952921e3fed0e9d7"
      unitRef="U002">354000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_a4d8f2407c1246dcb1f947b559b0d39c"
      unitRef="U002">19275000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_d1c6974126c54d2e84b42cafd21ebf4d"
      unitRef="U002">20360000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20230101to20230331_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_RangeAxis_MaximumMember_StatementGeographicalAxis_AllOtherCountriesMember"
      decimals="3"
      id="Fact_dae155d8879c4d238501034cc417ee24"
      unitRef="U006">0.02</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20240101to20240331_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_RangeAxis_MaximumMember_StatementGeographicalAxis_AllOtherCountriesMember"
      decimals="3"
      id="Fact_d7d8ab9124c84005a9f16162756cd4c9"
      unitRef="U006">0.02</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20240101to20240331_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_RangeAxis_MaximumMember_StatementGeographicalAxis_AllOtherCountriesMember"
      decimals="3"
      id="Fact_992c5d57be3646c6926a2fae8639b9a1"
      unitRef="U006">0.02</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20230101to20230331_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_RangeAxis_MaximumMember_StatementGeographicalAxis_AllOtherCountriesMember"
      decimals="3"
      id="Fact_01020bdaa6be4cedb59991c4303cf112"
      unitRef="U006">0.02</us-gaap:ConcentrationRiskPercentage1>
    <tlfa:RevenueRecognitionDiscountsPolicyTextBlock
      contextRef="c20240101to20240331"
      id="Text_86c403f8cb9345b99e4c0ce960314f7e">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-style: italic; font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-variant: normal; text-transform: none;"&gt;Discounts&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-variant: normal; text-transform: none;"&gt;&lt;span style="text-decoration: underline;"&gt;.&lt;/span&gt; &lt;span style="font-style: normal;"&gt;We offer six&#160; classes of customer discounts:&#160; 1) Retail, 2) Military/First Responder, 3) Business, 4) Commercial, 5) Commercial Pro, and 6) Employees.
              There are no other classes of discounts and any discounts given will fall into one of these six categories. Such discounts are not
              deemed to be variable consideration nor convey a material right to these customers since the discounted pricing they receive in a discount class is not incremental to others within the same class and there is no retrospective impact of such
              discounts. As a result, sales are reported after deduction of discounts at the point of sale. We do not pay slotting fees or make other payments to resellers.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
</tlfa:RevenueRecognitionDiscountsPolicyTextBlock>
    <tlfa:NumberOfClassesOfCustomerDiscounts
      contextRef="c20240101to20240331"
      decimals="INF"
      id="Fact_608196ada3a647c3989498039f33d5a1"
      unitRef="U007">6</tlfa:NumberOfClassesOfCustomerDiscounts>
    <tlfa:NumberOfClassesOfCustomerDiscounts
      contextRef="c20240101to20240331"
      decimals="INF"
      id="Fact_4397e04b28df4d1ab9137745adbfa9a1"
      unitRef="U007">6</tlfa:NumberOfClassesOfCustomerDiscounts>
    <us-gaap:SellingGeneralAndAdministrativeExpensesPolicyTextBlock
      contextRef="c20240101to20240331"
      id="Text_49fa23af0ba24397bcf2f832ad5e1fac">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Operating&lt;/span&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;"&gt;&#160;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;expense&lt;/span&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;"&gt;s&lt;/span&gt;. Operating expenses include all
          selling, general and administrative costs, including wages and benefits, rent and occupancy costs, depreciation, advertising, store operating expenses, outbound freight charges (to ship merchandise to customers), and corporate office costs.&lt;/div&gt;
</us-gaap:SellingGeneralAndAdministrativeExpensesPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentPolicyTextBlock
      contextRef="c20240101to20240331"
      id="Text_254677ffca6d42ab96ab85c61048f1f3">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Property and equipment, net of accumulated depreciation&lt;/span&gt;&lt;/span&gt;. Property and equipment are stated at cost. Depreciation is
          computed using the straight-line method over the estimated useful lives of the assets, which are &lt;span style="-sec-ix-hidden:Fact_138de38eb2164d4da489f5d1fc8ccb33"&gt;three&lt;/span&gt; to ten years for equipment and machinery, &lt;span style="-sec-ix-hidden:Fact_081f9d3879424da5a84f1d889d24a907"&gt;seven&lt;/span&gt;
          to fifteen years for furniture and fixtures, five years for vehicles, and forty years for buildings and related improvements. Leasehold
          improvements are amortized over the lesser of the life of the lease or the useful life of the asset. Repairs and maintenance costs are expensed as incurred but are capitalized if extend the life of the assets.&lt;/div&gt;
</us-gaap:PropertyPlantAndEquipmentPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20240331_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember_RangeAxis_MaximumMember"
      id="Fact_1e2990c56d9b422e8b836e1f6f0fb433">P10Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20240331_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndFixturesMember_RangeAxis_MaximumMember"
      id="Fact_4bcace2d12664298a1f3e3dcf123f04a">P15Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20240331_PropertyPlantAndEquipmentByTypeAxis_VehiclesMember"
      id="Fact_81c7895e9e524521987ed4c7f2fcd249">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20240331_PropertyPlantAndEquipmentByTypeAxis_BuildingAndBuildingImprovementsMember"
      id="Fact_04bbc8be3d7e42aa9be20b2ccad6b052">P40Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:InventoryPolicyTextBlock
      contextRef="c20240101to20240331"
      id="Text_a368177790cb433bad720854c423e636">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Inventory&lt;/span&gt;&lt;/span&gt;. Inventory is stated at the lower of first-in, first-out (&#x201c;FIFO&#x201d;) cost or net realizable value, and FIFO
          layers are maintained at the location level. Finished goods held for sale include the cost of merchandise purchases, the costs to bring the merchandise to our Texas distribution center, warehousing and handling expenditures, and distributing and
          delivering merchandise to our stores. These costs include depreciation of long-lived assets utilized in acquiring, warehousing and distributing inventory. Manufacturing inventory including raw materials and work-in-process is valued on a first
          in, first out basis using full absorption accounting which includes material, labor, and other applicable manufacturing overhead. Carrying values of inventory are analyzed and, to the extent that the cost of inventory exceeds the net realizable
          value, provisions are made to reduce the carrying amount of the inventory.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;We regularly review all inventory items to determine if there are (i) damaged goods (e.g., for leather, excessive scars or damage from ultra-violet (&#x201c;UV&#x201d;) light),
          (ii) items that need to be removed from our product line (e.g., slow-moving items, inability of a supplier to provide items of acceptable quality or quantity, and to maintain freshness in the product line) and (iii) pricing actions that need to
          be taken to adequately value our inventory at the lower of cost or net realizable value.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Since the determination of net realizable value of inventory involves both estimation and judgement with regard to market values and reasonable costs to sell,
          differences in these estimates could result in ultimate valuations that differ from the recorded asset.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The majority of inventory purchases and commitments are made in U.S. dollars in order to limit the Company&#x2019;s exposure to foreign currency fluctuations. Goods shipped
          to us are recorded as inventory owned by us when the risk of loss shifts to us from the supplier.&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br/&gt;
          &lt;/span&gt;&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Inventory is physically counted partially during each quarter and fully counted at year-end in the Texas distribution center. At the store
          level, inventory is partially&#160; counted each quarter for high value items and fully counted at year-end. Inventory is then adjusted in our accounting system to reflect actual count results. &lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-style: italic;"&gt;(in thousands)&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;March 31, 2024&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;December 31, 2023&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom;" valign="bottom"&gt;
                &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;On hand:&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
                &lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Finished goods held for sale&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0);"&gt;33,625&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0);"&gt;33,350&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
                &lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Raw materials and work in process&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0);"&gt;1,248&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0);"&gt;1,774&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;
                &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Inventory in transit&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0);"&gt;1,802&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0);"&gt;2,869&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
                &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;"&gt;TOTAL&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0); font-weight: bold;"&gt;$&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0); font-weight: bold;"&gt;36,675&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0); font-weight: bold;"&gt;$&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0); font-weight: bold;"&gt;37,993&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:InventoryPolicyTextBlock>
    <us-gaap:ScheduleOfInventoryCurrentTableTextBlock
      contextRef="c20240101to20240331"
      id="Text_990ec3ab0bdb4cb283f52a861f1f341f">
&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Inventory is physically counted partially during each quarter and fully counted at year-end in the Texas distribution center. At the store
          level, inventory is partially&#160; counted each quarter for high value items and fully counted at year-end. Inventory is then adjusted in our accounting system to reflect actual count results. &lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-style: italic;"&gt;(in thousands)&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;March 31, 2024&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;
                &lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;December 31, 2023&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom;" valign="bottom"&gt;
                &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;On hand:&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
                &lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Finished goods held for sale&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0);"&gt;33,625&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0);"&gt;33,350&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
                &lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Raw materials and work in process&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0);"&gt;1,248&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0);"&gt;1,774&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;
                &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Inventory in transit&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0);"&gt;1,802&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0);"&gt;2,869&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
                &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;"&gt;TOTAL&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0); font-weight: bold;"&gt;$&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0); font-weight: bold;"&gt;36,675&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0); font-weight: bold;"&gt;$&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
                &lt;div style="color: rgb(0, 0, 0); font-weight: bold;"&gt;37,993&lt;/div&gt;
              &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
    <us-gaap:InventoryFinishedGoods
      contextRef="c20240331"
      decimals="-3"
      id="Fact_741547ceab0b4a99a08c6c8b46faa349"
      unitRef="U002">33625000</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryFinishedGoods
      contextRef="c20231231"
      decimals="-3"
      id="Fact_1b28498dafec4b0e87fe1f5748d3be49"
      unitRef="U002">33350000</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryWorkInProcessAndRawMaterials
      contextRef="c20240331"
      decimals="-3"
      id="Fact_eb4b8ef98c5742d992a322b853031515"
      unitRef="U002">1248000</us-gaap:InventoryWorkInProcessAndRawMaterials>
    <us-gaap:InventoryWorkInProcessAndRawMaterials
      contextRef="c20231231"
      decimals="-3"
      id="Fact_9382d9cae34948dd80d5c09d8a78513e"
      unitRef="U002">1774000</us-gaap:InventoryWorkInProcessAndRawMaterials>
    <us-gaap:OtherInventoryInTransit
      contextRef="c20240331"
      decimals="-3"
      id="Fact_616913d0ddbe4511ad794c752ff134b6"
      unitRef="U002">1802000</us-gaap:OtherInventoryInTransit>
    <us-gaap:OtherInventoryInTransit
      contextRef="c20231231"
      decimals="-3"
      id="Fact_ebfed86651164087944a734aedcf50fa"
      unitRef="U002">2869000</us-gaap:OtherInventoryInTransit>
    <us-gaap:InventoryNet
      contextRef="c20240331"
      decimals="-3"
      id="Fact_2b9046f2e1184c7dbff7e57585e5e8ab"
      unitRef="U002">36675000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="c20231231"
      decimals="-3"
      id="Fact_c47de6b3a0704726b261ff5d24e47beb"
      unitRef="U002">37993000</us-gaap:InventoryNet>
    <us-gaap:LesseeLeasesPolicyTextBlock
      contextRef="c20240101to20240331"
      id="Text_901331bdc6cf42a4980504556d7bfd14">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-style: italic;"&gt;Leases&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;.&lt;/span&gt; We lease certain real estate for our retail store locations and may
          lease warehouse equipment for our Texas distribution center under long-term lease agreements; however, as of the end of December 31, 2023, we acquired the warehouse equipment and is now a part of our fixed assets. We determine if an arrangement
          is a lease at inception and recognize right-of-use (&#x201c;ROU&#x201d;) assets and lease liabilities at commencement date based on the present value of the lease payments over the lease term.&lt;span style="color: rgb(0, 0, 0);"&gt; We elected not to record leases
            with an initial term of 12 months or less on the balance sheet for all our asset classes.&lt;/span&gt;&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;For operating leases, the present value of our lease liabilities may include: (1) rental payments adjusted for inflation or market rates, and (2) lease terms with
          options to renew the lease or options to purchase leased equipment, when it is reasonably certain we will exercise such an option. The exercise of lease renewal or purchase option is generally at our discretion.&#160; Payments based on a change in an
          index or market rate are not considered in the determination of lease payments for purposes of measuring the related lease liability. We discount lease payments using our incremental borrowing rate based on information available as of the
          measurement date.&lt;/div&gt;

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

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;We recognize rent expense related to our &lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;"&gt;operating leases assets on a straight-line basis over the lease term. Rent expense is recorded in operating expenses.&lt;br/&gt;
          &lt;/span&gt;&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;For finance leases, our right-of-use assets are amortized on a straight-line basis over the earlier of the useful life of the right-of-use asset or the end of the
          lease term with rent expense recorded to operating expenses.&#160; We adjust the lease liability to reflect lease payments made during the period and interest incurred on the lease liability using the effective interest method. &lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;"&gt;The interest expense incurred is recorded in interest expense on the Condensed Consolidated
            Statements of Operations and Comprehensive Income&lt;/span&gt;.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The depreciable life of related leasehold improvements is based on the shorter of the useful life or the lease term. We also perform interim reviews of our lease
          assets for impairment when evidence exists that the carrying value of an asset group, including a lease asset, may not be recoverable.&lt;/div&gt;

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

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;None of our lease agreements contain contingent rental payments, material residual value guarantees or material restrictive covenants.&#160; We have no sublease
          agreements and no lease agreements in which we are named as a lessor.&lt;/div&gt;
</us-gaap:LesseeLeasesPolicyTextBlock>
    <us-gaap:ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock
      contextRef="c20240101to20240331"
      id="Text_ebeff7a2f6b945f89eacb4a31d24eec1">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Impairment of Long-Lived Assets&lt;/span&gt;&lt;/span&gt;. We evaluate long-lived assets on a quarterly basis to identify events or changes in
          circumstances (&#x201c;triggering events&#x201d;) that indicate the carrying value of certain assets may not be recoverable. Upon the occurrence of a triggering event, ROU lease assets, property and equipment and definite-lived intangible assets are reviewed
          for impairment and an impairment loss is recorded in the period in which it is determined that the carrying amount of the assets is not recoverable. The determination of recoverability is made based upon the estimated undiscounted future net cash
          flows of assets grouped at the lowest level for which there are identifiable cash flows independent of the cash flows of other groups of assets with such cash flows to be realized over the estimated remaining useful life of the primary asset
          within the asset group. The Company determined the lowest level of identifiable cash flows that are independent of other asset groups to be primarily at the individual store level. If the estimated undiscounted future net cash flows for a given
          store are less than the carrying amount of the related store assets, an impairment loss is determined by comparing the estimated fair value with the carrying value of the related assets. The impairment loss is then allocated across the asset
          group&#x2019;s major classifications which in this case are operating lease assets and property and equipment. Triggering events at the store level could include material declines in operational and financial performance or planned changes in the use of
          assets, such as store relocation or store closure. This evaluation requires management to make judgements relating to future cash flows, growth rates and economic and market conditions. The fair value of an asset group is estimated using a
          discounted cash flow valuation method.&lt;/div&gt;
</us-gaap:ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock>
    <us-gaap:FairValueOfFinancialInstrumentsPolicy
      contextRef="c20240101to20240331"
      id="Text_923b48d0868141ba99975bf649556eaa">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Fair Value of Financial Instruments&lt;/span&gt;&lt;/span&gt;. We measure fair value as an exit price, which is the amount that would be
          received to sell an asset or paid to transfer a liability in an orderly transaction between market participants. As a basis for considering such assumptions, accounting standards establish a three-tier fair value hierarchy, which prioritizes the
          inputs used in the valuation methodologies in measuring fair value:&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div&gt;
          &lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 36pt; vertical-align: top;"&gt;
                  &lt;div style="margin-left: 18pt;"&gt;&lt;span style="font-family: Times New Roman"&gt;&#x25cf;&lt;/span&gt;&lt;/div&gt;
                &lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top;"&gt;
                  &lt;div style="text-align: justify;"&gt;Level 1 &#x2013; observable inputs that reflect quoted prices in active markets for identical assets or liabilities.&lt;/div&gt;
                &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
        &lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div&gt;
          &lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 36pt; vertical-align: top;"&gt;
                  &lt;div style="margin-left: 18pt;"&gt;&lt;span style="font-family: Times New Roman"&gt;&#x25cf;&lt;/span&gt;&lt;/div&gt;
                &lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top;"&gt;
                  &lt;div style="text-align: justify;"&gt;Level 2 &#x2013; significant observable inputs other than quoted prices in active markets for similar assets and liabilities, such as quoted prices for identical or similar assets or liabilities in markets that
                    are not active; or other inputs that are observable or can be corroborated by observable market data.&lt;/div&gt;
                &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
        &lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div&gt;
          &lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 36pt; vertical-align: top;"&gt;
                  &lt;div style="margin-left: 18pt;"&gt;&lt;span style="font-family: Times New Roman"&gt;&#x25cf;&lt;/span&gt;&lt;/div&gt;
                &lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top;"&gt;
                  &lt;div style="text-align: justify;"&gt;Level 3 &#x2013; significant unobservable inputs reflecting our own assumptions, consistent with reasonably available assumptions made by other market participants.&lt;/div&gt;
                &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
          &lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
          &lt;/div&gt;

        &lt;/div&gt;

&lt;div&gt;&lt;span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;Classification of the financial asset or liability within the hierarchy is
          determined based on the lowest level input that is significant to the fair value measurement. &lt;/span&gt;&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Our principal financial instruments held consist of T-Bills as of March 31, 2024 and December 31, 2023 which fall under level 1 of the fair value hierarchy; accounts
          receivable - trade, accounts payable - &lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;"&gt;trade, as of March 31, 2024 and
            December 31, 2023,&#160; all of which fall under Level 3 of the fair value hierarchy&lt;/span&gt;.&#160; As of March 31, 2024 and December 31, 2023, the carrying values of our financial instruments, included in our Consolidated Balance Sheets, approximated
          their fair values. There were no transfers into or out of Levels 1, 2 and 3 during the three months ended March 31, 2024 and 2023.&lt;/div&gt;
</us-gaap:FairValueOfFinancialInstrumentsPolicy>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet
      contextRef="c20230101to20230331"
      decimals="0"
      id="Fact_dd31022d1f0640f0a20cc5d611ea709d"
      unitRef="U002">0</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet
      contextRef="c20240101to20240331"
      decimals="0"
      id="Fact_26887e6b781848c1b875c945c7a8e0db"
      unitRef="U002">0</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet>
    <us-gaap:IncomeTaxPolicyTextBlock
      contextRef="c20240101to20240331"
      id="Text_f7d697c35bd24078803a3f7d6ab1f36c">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Income Taxes&lt;/span&gt;&lt;/span&gt;. Income taxes are estimated for each jurisdiction in which we operate. This involves assessing current
          tax exposure together with temporary differences resulting from differing treatment of items for tax and financial statement accounting purposes. Any resulting deferred tax assets are evaluated for recoverability based on estimated future taxable
          income. To the extent it is more-likely-than-not that all or a portion of a deferred tax asset will not be realized, a valuation allowance is recorded.&#160; Our evaluation regarding whether a valuation allowance is required or should be adjusted also
          considers, among other things, the nature, frequency, and severity of recent losses, forecasts of future profitability and the duration of statutory carryforward periods.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred tax assets and liabilities are measured using the enacted tax rates in effect in the years when those temporary differences are expected to reverse. The
          effect on deferred taxes from a change in tax rate is recognized through continuing operations in the period that includes the enactment date of the change. Changes in tax laws and rates could affect recorded deferred tax assets and liabilities
          in the future.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;A tax benefit from an uncertain tax position may be recognized when it is more-likely-than-not that the position will be sustained upon examination, including
          resolutions of any related appeals or litigation processes, based on the technical merits. Income tax positions must meet a more-likely-than-not recognition threshold to be recognized.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;We recognize tax liabilities for uncertain tax positions and adjust these liabilities when our judgement changes as a result of the evaluation of new information not
          previously available. Due to the complexity of some of these uncertainties, the ultimate resolution may result in a payment that is materially different from the current estimate of the tax liabilities. These differences will be reflected as
          increases or decreases to income tax expense and the effective tax rate in the period in which new information becomes available. We recognize interest and/or penalties related to all tax positions in income tax expense. To the extent that
          accrued interest and penalties do not ultimately become payable, amounts accrued will be reduced and reflected as a reduction of the overall income tax provision in the period that such determination is made.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;We may be subject to periodic audits by the Internal Revenue Service and other taxing authorities. These audits may challenge certain of our tax positions, such as
          the timing and amount of deductions and allocation of taxable income to the various jurisdictions.&lt;/div&gt;
</us-gaap:IncomeTaxPolicyTextBlock>
    <us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy
      contextRef="c20240101to20240331"
      id="Text_8aa5b4b234694e06aa16da119be56771">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Stock-based compensation&lt;/span&gt;&lt;/span&gt;. The Company&#x2019;s stock-based compensation relates primarily to restricted stock unit (&#x201c;RSU&#x201d;)
          awards.&#160; Accounting guidance requires measurement and recognition of compensation expense at an amount equal to the grant date fair value. Compensation expense is recognized for service-based stock awards on a straight-line basis or ratably over
          the requisite service period, based on the closing price of the Company&#x2019;s stock on the date of grant. The service-based awards typically vest ratably over the requisite service period, provided that the participant is employed on the vesting
          date. Compensation expense is reduced by actual forfeitures as they occur over the requisite service period of the awards.&lt;/div&gt;

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

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Performance-based RSUs vest, if at all, upon the Company satisfying certain performance targets. The Company records compensation expense for awards with a
          performance condition when it is probable that the condition will be achieved.&#160; If the Company determines it is not probable a performance condition will be achieved, no compensation expense is recognized. If the Company changes its assessment in
          a subsequent period and concludes it is probable a performance condition will be achieved, the Company will recognize compensation expense ratably between the period of the change in assessment through the expected date of satisfying the
          performance condition for vesting. If the Company subsequently assesses that it is no longer probable that a performance condition will be achieved, the accumulated expense that has been previously recognized will be reversed. The compensation
          expense ultimately recognized, if any, related to performance-based awards will equal the grant date fair value based on the number of shares for which the performance condition has been satisfied.&#160; We issue shares from authorized shares upon the
          lapsing of vesting restrictions on RSUs. We do not use cash to settle equity instruments issued under stock-based compensation awards. &lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;"&gt;The payments of the employees&#x2019; tax liability for a portion of the vested shares are satisfied by withholding shares with a fair value equal to the tax liability&lt;/span&gt;.&lt;/div&gt;
</us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy>
    <us-gaap:ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy
      contextRef="c20240101to20240331"
      id="Text_0fe8693fd2474d8facae9f57264b2a65">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Accounts Receivable - Trade and Expected Credit Losses&lt;/span&gt;&lt;/span&gt;. Our receivables primarily arise from the sale of merchandise
          to customers that have applied for and been granted credit. Accounts receivable are stated at amounts due, net of an allowance. Accounts receivable are generally due within 30 days of invoicing. We estimate expected credit losses based on factors
          such as the composition of accounts receivable, the age of the accounts, historical bad debt experience, and our evaluation of the financial condition and past collection history of each customer. Management believes that the historical loss
          information it has compiled is a reasonable base on which to determine expected credit losses for trade receivables held at March 31, 2024, because the composition of the trade receivables at that date is consistent with that used in developing
          the historical credit-loss percentages (i.e., the similar risk characteristics of its customers and its credit practices have not changed significantly over time). Accordingly, the allowance for expected credit losses at March 31, 2024, December
          31, 2023, and January 1, 2023 each totaled less than $0.1 million.&lt;/div&gt;
</us-gaap:ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="c20240331"
      decimals="-5"
      id="Fact_fdd9339dddd6436f8fd2bbb5acca3951"
      unitRef="U002">100000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="c20221231"
      decimals="-5"
      id="Fact_29af2f195a8d49d282a9fd7bce5ab37f"
      unitRef="U002">100000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="c20231231"
      decimals="-5"
      id="Fact_217a8566714944898edd55485cfbd943"
      unitRef="U002">100000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:IntangibleAssetsFiniteLivedPolicy
      contextRef="c20240101to20240331"
      id="Text_aea61aea53a244ec8ec68e52e0ab7446">
&lt;div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: justify;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Other Intangible Assets&lt;/span&gt;&lt;/span&gt;. Our intangible assets and related accumulated amortization relate to trademarks and
          copyrights that are definite-lived intangibles and are subject to amortization. The weighted average amortization period is 15 years
          for trademarks and copyrights. Amortization expense related to other intangible assets was less than $0.01 million during each of
          the three months ended March 31, 2024 and 2023 was recorded in operating expenses. Based on the current amount of intangible assets subject to amortization, we estimate amortization expense to be less than $0.01 million annually over the next five years. Our &#x201c;Other intangible assets&#x201d; will be fully amortized as of June 30 2024 but&#160; is now included in
          &#x201c;Other assets&#x201d; on the face of the balance sheet.&lt;/div&gt;
</us-gaap:IntangibleAssetsFiniteLivedPolicy>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="c20240101to20240331_FiniteLivedIntangibleAssetsByMajorClassAxis_IntellectualPropertyMember"
      id="Fact_42a52550eb2d47649ec9c0e6e1db0e41">P15Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="c20240101to20240331_RangeAxis_MaximumMember"
      decimals="-4"
      id="Fact_eaa04ae6770041489caedab45aeb6e6b"
      unitRef="U002">10000.00</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="c20230101to20230331_RangeAxis_MaximumMember"
      decimals="-4"
      id="Fact_96c54c45cb6546a68140c95a1079f52b"
      unitRef="U002">10000.00</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
      contextRef="c20240331_RangeAxis_MaximumMember"
      decimals="-4"
      id="Fact_accd58c3c5e04becbc89a2e52977575e"
      unitRef="U002">10000.00</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear
      contextRef="c20240331_RangeAxis_MaximumMember"
      decimals="-4"
      id="Fact_8e4502fb4d37491694b306dda77097e1"
      unitRef="U002">10000.00</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
      contextRef="c20240331_RangeAxis_MaximumMember"
      decimals="-4"
      id="Fact_6b6b6a9d1a794ff081b899c27b7d0035"
      unitRef="U002">10000.00</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
      contextRef="c20240331_RangeAxis_MaximumMember"
      decimals="-4"
      id="Fact_28d8e5418c7c4b5183f27e9ffb914ca3"
      unitRef="U002">10000.00</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
      contextRef="c20240331_RangeAxis_MaximumMember"
      decimals="-4"
      id="Fact_1ff94f514f8643e5b36a58943869de3e"
      unitRef="U002">10000.00</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
    <us-gaap:ComprehensiveIncomePolicyPolicyTextBlock
      contextRef="c20240101to20240331"
      id="Text_1682801bb78b4ace8c5f2da74931a983">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Comprehensive Income&lt;/span&gt;&lt;/span&gt;. Comprehensive income includes net income and certain other items that are recorded directly to
          stockholders&#x2019; equity. The Company&#x2019;s only source of other comprehensive income is foreign currency translation adjustments, and those adjustments are presented net of tax.&lt;/div&gt;
</us-gaap:ComprehensiveIncomePolicyPolicyTextBlock>
    <us-gaap:DebtDisclosureTextBlock
      contextRef="c20240101to20240331"
      id="Text_2e00df2c18644e6d90213398e884832a">
&lt;div style="text-align: justify; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2. NOTES PAYABLE AND LONG-TERM DEBT&lt;/div&gt;

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

&lt;div&gt;&lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;On January 3, 2023, the Company entered
        into a credit agreement (the &#x201c;Credit Agreement&#x201d;) with JPMorgan Chase Bank, N.A. Under the Credit Agreement, the bank will provide the Company a credit facility of up to $5,000,000 on standard terms and conditions, including affirmative and negative covenants set forth in the Credit Agreement.&#160; As security for the credit facility, the Company has pledged as collateral certain of its
        assets, including the Company&#x2019;s cash in deposit accounts, inventory and equipment. As of the date of this filing, no funds had been
        borrowed under this facility.&lt;/span&gt;

      &lt;br/&gt;&lt;/div&gt;
</us-gaap:DebtDisclosureTextBlock>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="c20230103_LineOfCreditFacilityAxis_JPMorganChaseBankNAMember"
      decimals="0"
      id="Fact_9b228298e9114d90958413bb512e3ed5"
      unitRef="U002">5000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:ProceedsFromLinesOfCredit
      contextRef="c20240101to20240331_LineOfCreditFacilityAxis_JPMorganChaseBankNAMember"
      decimals="0"
      id="Fact_1de7bcef13814b04b2361fae2902b806"
      unitRef="U002">0</us-gaap:ProceedsFromLinesOfCredit>
    <us-gaap:IncomeTaxDisclosureTextBlock
      contextRef="c20240101to20240331"
      id="Text_4562bace87dd40deb127034024eac5af">
&lt;div style="text-align: justify; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;"&gt;3.&#160; INCOME TAX&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Our effective tax rate for the three months ended March 31, 2024 and 2023 was 25.7% and 29.5%, respectively. Our effective tax rate differs from the federal statutory rate
        primarily due to U.S. state income tax expense, expenses that are nondeductible for tax purposes, the change in our valuation allowance associated with our deferred tax assets, and differences in tax rates in foreign jurisdictions.&lt;/div&gt;
</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="c20240101to20240331"
      decimals="3"
      id="Fact_c496b315a7f3472e8d9e9159870a9d3e"
      unitRef="U006">0.257</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="c20230101to20230331"
      decimals="3"
      id="Fact_3fb14a8c592b43498c6292bb5cf2856f"
      unitRef="U006">0.295</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock
      contextRef="c20240101to20240331"
      id="Text_f8d8c1139e104301a84e508e142cdfe6">
&lt;div style="text-align: justify; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;"&gt;4.&#160; STOCK-BASED COMPENSATION&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Tandy Leather Factory, Inc. 2013 Restricted Stock Plan (the &#x201c;2013 Plan&#x201d;) was adopted by our Board of Directors in January 2013 and approved by our stockholders in
        June 2013. The 2013 Plan initially reserved up to 300,000 shares for restricted stock and restricted stock unit (&#x201c;RSU&#x201d;) awards to our
        executive officers, non-employee directors and other key employees. In June 2020, our stockholders approved an increase to the plan reserve to 800,000
        shares of our common stock and extended the 2013 Plan to June 2023. Awards granted under the 2013 Plan may be service-based awards or performance-based awards, and may be subject to a graded vesting schedule with a minimum vesting period of four years, unless otherwise determined by the Compensation Committee of the Board of Directors that administers the plan. All shares remaining
        ungranted under the 2013 Plan were cancelled upon the adoption of the 2023 Plan described below.&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;br/&gt;
        &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;The Tandy Leather Factory, Inc. 2023 Incentive Stock Plan (the &#x201c;2023 Plan&#x201d; and, together with the 2013 Plam, the &#x201c;Plans&#x201d;) was adopted by our Board of Directors in April 2023 and approved by our
          stockholders in June 2023.&#160; The 2023 Plan initially reserved up to 800,000 shares of our common stock for a variety of equity awards
          (including, but not limited to, RSUs, the only type of awards that have been granted to date) to our executive officers, non-employee directors and other key employees.&#160; In June 2023, as part of their annual director compensation, certain of our
          non-employee directors were granted a total of 12,993 service-based RSUs under the 2023 Plan, which will vest ratably over the next four years, subject to each participant&#x2019;s continues service on the board as of each vesting date.&#160; In October 2023, the Company granted to Ms. Carr a
          total of 276,000 service-based RSUs under the 2023 Plan, which will vest ratably over the next three years, subject to Ms. Carr&#x2019;s continued employment as of each vesting date.&#160; In March 2024, the Company granted to certain employees other than
          Ms. Carr a total of 59,649 RSUs under the 2023 Plan, which will vest ratably over the next three years, subject to the recipients&#x2019; continued employment as of each vesting date.&lt;/span&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;A summary of the activity for non-vested restricted stock and RSU awards as of March 31, 2024 is presented below:&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Shares&lt;/div&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt; (in thousands)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Weighted Average &lt;/div&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Share Price&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" rowspan="1" style="vertical-align: bottom; text-align: right;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" rowspan="1" style="vertical-align: bottom; text-align: right;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Balance, January 1, 2024&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;623&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;4.37&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Granted&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;60&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;4.47&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Forfeited&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;(6&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;5.00&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Vested&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;(3&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;3.85&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;"&gt;Balance, &lt;span style="text-indent: 0pt;"&gt;March 31&lt;/span&gt;, 2024&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-weight: bold;"&gt;674&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-weight: bold;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-weight: bold;"&gt;4.40&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="text-align: justify;"&gt; &lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;The
          Company&#x2019;s stock-based compensation relates primarily to RSU awards. For these service-based awards, our stock-based compensation expense, included in operating expenses, was $0.2 million and $0.2 million for the three months ended March 31, 2024 and
          2023, respectively. &lt;/span&gt;&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;As of March 31, 2024, the Company has concluded it is not probable that the performance conditions related to performance-based RSUs granted to our CEO in October 2018
        will be achieved, and as a result no compensation expense related to performance-based RSUs has been recorded.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;As of March 31, 2024, there was unrecognized compensation cost related to non-vested, service-based RSU awards of $1.4 million, which will be recognized in each of the following years (dollars in thousands):&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-style: italic; text-align: center;"&gt;&lt;span style="font-style: normal; font-weight: bold;"&gt;Unrecognized Expense&lt;/span&gt;&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; text-align: left; width: 88%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); text-align: center;"&gt;2024&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;475&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; text-align: left; width: 88%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); text-align: center;"&gt;2025&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;548&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; text-align: left; width: 88%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); text-align: center;"&gt;2026&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;403&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; text-align: center; width: 88%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;2027&lt;br/&gt;
            &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;21&lt;br/&gt;
            &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; text-align: left; width: 88%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;"&gt;&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-weight: bold;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-weight: bold;"&gt;1,447&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;We issue shares from authorized shares upon the lapsing of vesting restrictions on restricted stock and RSUs. For the three months ended March 31, 2024 and 2023, we
        issued 2,727 and 17,518
        shares, respectively, resulting from the vesting of RSUs.&#160; We do not use cash to settle equity instruments issued under stock-based compensation awards.&lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;"&gt;&#160;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial;"&gt;The payment of the employees&#x2019; tax liability for a portion of the vested shares may be satisfied by withholding shares with a fair value equal
          to the tax liability.&lt;/span&gt;&lt;/div&gt;
</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <us-gaap:CommonStockCapitalSharesReservedForFutureIssuance
      contextRef="c20130131_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_TwoThousandAndThirteenRestrictedStockPlanMember_RangeAxis_MaximumMember"
      decimals="0"
      id="Fact_9dc49f7f6f534f0fac714e176795b3c3"
      unitRef="U001">300000</us-gaap:CommonStockCapitalSharesReservedForFutureIssuance>
    <us-gaap:CommonStockCapitalSharesReservedForFutureIssuance
      contextRef="c20200630_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_TwoThousandAndThirteenRestrictedStockPlanMember"
      decimals="0"
      id="Fact_25dbfc09380e4cb6aa0a5ddd13bf28b2"
      unitRef="U001">800000</us-gaap:CommonStockCapitalSharesReservedForFutureIssuance>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="c20240101to20240331_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember_RangeAxis_MinimumMember"
      id="Fact_046ddb758c2a47339f411b46485b5b73">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:CommonStockCapitalSharesReservedForFutureIssuance
      contextRef="c20230430_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember_RangeAxis_MaximumMember"
      decimals="0"
      id="Fact_1c1fdb2b852546159651776ef9df731a"
      unitRef="U001">800000</us-gaap:CommonStockCapitalSharesReservedForFutureIssuance>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c20230601to20230630_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember_TitleOfIndividualAxis_DirectorMember"
      decimals="0"
      id="Fact_b991952eb0054d16b85bc42d22f0e355"
      unitRef="U001">12993</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="c20240101to20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember_TitleOfIndividualAxis_DirectorMember"
      id="Fact_732e55a2fac04b19a5a7031ca0e4e2f7">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c20231001to20231031_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember_TitleOfIndividualAxis_ChiefExecutiveOfficerMember"
      decimals="0"
      id="Fact_10dbd7cf158a4c9aa231f5c9f8172616"
      unitRef="U001">276000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="c20240101to20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember_TitleOfIndividualAxis_ChiefExecutiveOfficerMember"
      id="Fact_fe0f5ed353ee46a3aef4411f0decd324">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c20240301to20240331_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember"
      decimals="0"
      id="Fact_eb15ffee44874ebf8f26fb86713e6cff"
      unitRef="U001">59649</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="c20240101to20240331_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_TwoThousandAndTwentyThreeRestrictedStockPlanMember"
      id="Fact_046b9be99e0f49c1a62f9721f8e24a15">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock
      contextRef="c20240101to20240331"
      id="Text_0dceb7981dab444fa416dd77a5bc26d4">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;A summary of the activity for non-vested restricted stock and RSU awards as of March 31, 2024 is presented below:&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Shares&lt;/div&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt; (in thousands)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Weighted Average &lt;/div&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Share Price&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" rowspan="1" style="vertical-align: bottom; text-align: right;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" rowspan="1" style="vertical-align: bottom; text-align: right;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Balance, January 1, 2024&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;623&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;4.37&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Granted&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;60&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;4.47&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Forfeited&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;(6&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;5.00&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Vested&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;(3&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;3.85&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;"&gt;Balance, &lt;span style="text-indent: 0pt;"&gt;March 31&lt;/span&gt;, 2024&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-weight: bold;"&gt;674&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-weight: bold;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-weight: bold;"&gt;4.40&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c20231231_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember"
      decimals="-3"
      id="Fact_4bf11a753bb74e73b71dc2a718b90796"
      unitRef="U001">623000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c20231231_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember"
      decimals="2"
      id="Fact_ed99f75914484f7cb14aae0a8cfd1dfa"
      unitRef="U003">4.37</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c20240101to20240331_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember"
      decimals="-3"
      id="Fact_ada1087074034278ad42bcb6e6fbd253"
      unitRef="U001">60000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20240101to20240331_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember"
      decimals="2"
      id="Fact_9301b61d77b448e5a36313359a104e8a"
      unitRef="U003">4.47</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="c20240101to20240331_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember"
      decimals="-3"
      id="Fact_6b5d673de7714c5eb269f88e9be988c1"
      unitRef="U001">6000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="c20240101to20240331_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember"
      decimals="2"
      id="Fact_78a5152df4564afebb15bdcb4f30f5fa"
      unitRef="U003">5</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c20240101to20240331_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember"
      decimals="-3"
      id="Fact_93af6004dfd44469ba8520d636570aad"
      unitRef="U001">3000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20240101to20240331_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember"
      decimals="2"
      id="Fact_00585fe866d940aea9f78f39924209f1"
      unitRef="U003">3.85</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c20240331_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember"
      decimals="-3"
      id="Fact_0a3bc358d200457fb99f63a49d6a9456"
      unitRef="U001">674000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c20240331_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember"
      decimals="2"
      id="Fact_a2e7e17d0e7a4f4987162b6d0c48d551"
      unitRef="U003">4.4</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20240101to20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember"
      decimals="-5"
      id="Fact_124d6c9914f24bc8b9b874f2f9cd5e63"
      unitRef="U002">200000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20230101to20230331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember"
      decimals="-5"
      id="Fact_68919991a746440d9da3380b4b9ee21e"
      unitRef="U002">200000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20240101to20240331_AwardTypeAxis_PerformanceBasedRestrictedStockUnitsRSUsMember"
      decimals="-6"
      id="Fact_69d653a47d9b48588947555790a85c0b"
      unitRef="U002">0</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock
      contextRef="c20240101to20240331"
      id="Text_b39d00721926460fb096054641622688">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;As of March 31, 2024, there was unrecognized compensation cost related to non-vested, service-based RSU awards of $1.4 million, which will be recognized in each of the following years (dollars in thousands):&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-style: italic; text-align: center;"&gt;&lt;span style="font-style: normal; font-weight: bold;"&gt;Unrecognized Expense&lt;/span&gt;&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; text-align: left; width: 88%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); text-align: center;"&gt;2024&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;475&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; text-align: left; width: 88%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); text-align: center;"&gt;2025&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;548&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; text-align: left; width: 88%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); text-align: center;"&gt;2026&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;403&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; text-align: center; width: 88%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;2027&lt;br/&gt;
            &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" valign="bottom"&gt;21&lt;br/&gt;
            &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; text-align: left; width: 88%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;"&gt;&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-weight: bold;"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0); font-weight: bold;"&gt;1,447&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="c20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember"
      decimals="-5"
      id="Fact_a27de55597bf43e39941e29ae0db50ed"
      unitRef="U002">1400000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <tlfa:EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear
      contextRef="c20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember"
      decimals="-3"
      id="Fact_f89fd80900ef4a1abcaa91bc92c45b83"
      unitRef="U002">475000</tlfa:EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedRemainderOfFiscalYear>
    <tlfa:EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths
      contextRef="c20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember"
      decimals="-3"
      id="Fact_186fe8c222c64f86b757ab1723f9e8c3"
      unitRef="U002">548000</tlfa:EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedDueInNextTwelveMonths>
    <tlfa:EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears
      contextRef="c20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember"
      decimals="-3"
      id="Fact_190bc688367c4289a106c54049a58c1a"
      unitRef="U002">403000</tlfa:EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInTwoYears>
    <tlfa:EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears
      contextRef="c20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember"
      decimals="-3"
      id="Fact_df00e8dca05a4ff0a895c9636508626b"
      unitRef="U002">21000</tlfa:EmployeeServiceShareBasedCompensationNonVestedAwardsCompensationCostNotYetRecognizedDueInThreeYears>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="c20240331_AwardTypeAxis_ServicedBasedRestrictedStockUnitsRSUsMember"
      decimals="-3"
      id="Fact_373180145f51400a91081eb9542c6096"
      unitRef="U002">1447000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross
      contextRef="c20240101to20240331_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember"
      decimals="0"
      id="Fact_bd9e5521843c4ae691fa66e0a606d726"
      unitRef="U001">2727</us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross
      contextRef="c20230101to20230331_AwardTypeAxis_RestrictedStockAndRestrictedStockUnitsMember"
      decimals="0"
      id="Fact_2e510014a84246a5a2edc0c8afc0ff26"
      unitRef="U001">17518</us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross>
    <us-gaap:EarningsPerShareTextBlock
      contextRef="c20240101to20240331"
      id="Text_92a535a80d964914a05dbbde42b79cff">
&lt;div style="text-align: justify; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;"&gt;5.&#160; EARNINGS PER SHARE&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Basic earnings per share (&#x201c;EPS&#x201d;) are computed based on the weighted average number of common shares outstanding during the period.&#160; Diluted EPS includes additional
        common shares that would have been outstanding if potential common shares with a dilutive effect, such as stock awards from the Company&#x2019;s restricted stock plan, had been issued.&#160; Anti-dilutive securities represent potentially dilutive securities
        which are excluded from the computation of diluted EPS as their impact would be anti-dilutive.&#160; Diluted EPS is computed using the treasury stock method.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The following table sets forth the computation of basic and diluted EPS for the three months ended March 31, 2024 and 2023:&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-style: italic;"&gt;&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Three Months Ended March 31,&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;span style="font-style: italic;"&gt;(in thousands, except share data)&lt;/span&gt; &lt;br/&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2024&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2023&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" rowspan="1" style="vertical-align: bottom; text-align: right;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" rowspan="1" style="vertical-align: bottom; text-align: right;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; font-weight: bold;" valign="bottom"&gt;Numerator:&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" rowspan="1" style="vertical-align: bottom; text-align: right;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" rowspan="1" style="vertical-align: bottom; text-align: right;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Net income&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;525&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;664&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;"&gt;Denominator:&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Basic weighted-average common shares outstanding&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;8,400,354&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;8,303,117&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none; width: 76%;" valign="bottom"&gt;
              &lt;div style="margin-top: 0px; margin-bottom: 0px; text-align: left; text-indent: 9pt;"&gt;Dilutive effect of service-based restricted stock awards granted to Board of Directors under the Plans&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;5,108&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;47,050&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none; text-indent: 9pt; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;Dilutive effect of service-based restricted stock awards granted to employees under the Plans&lt;br/&gt;
            &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;94,892&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Diluted weighted-average common shares outstanding&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;8,500,354&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;8,350,166&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;Basic earnings per share &lt;br/&gt;
            &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;$&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;0.06&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;$&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;0.08&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;Diluted earnings per share &lt;br/&gt;
            &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;$&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;0.06&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;$&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;0.08&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock
      contextRef="c20240101to20240331"
      id="Text_ce12b55cf24347f9b26fc6af2c30452e">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The following table sets forth the computation of basic and diluted EPS for the three months ended March 31, 2024 and 2023:&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt; text-align: left; width: 100%;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-style: italic;"&gt;&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Three Months Ended March 31,&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;span style="font-style: italic;"&gt;(in thousands, except share data)&lt;/span&gt; &lt;br/&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2024&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2023&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" rowspan="1" style="vertical-align: bottom; text-align: right;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" rowspan="1" style="vertical-align: bottom; text-align: right;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; font-weight: bold;" valign="bottom"&gt;Numerator:&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" rowspan="1" style="vertical-align: bottom; text-align: right;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" rowspan="1" style="vertical-align: bottom; text-align: right;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Net income&lt;br/&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;525&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;664&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;"&gt;Denominator:&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Basic weighted-average common shares outstanding&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;8,400,354&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;8,303,117&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none; width: 76%;" valign="bottom"&gt;
              &lt;div style="margin-top: 0px; margin-bottom: 0px; text-align: left; text-indent: 9pt;"&gt;Dilutive effect of service-based restricted stock awards granted to Board of Directors under the Plans&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;5,108&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; white-space: nowrap;" valign="bottom"&gt;47,050&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none; text-indent: 9pt; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;Dilutive effect of service-based restricted stock awards granted to employees under the Plans&lt;br/&gt;
            &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;94,892&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;-&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
              &lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Diluted weighted-average common shares outstanding&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;8,500,354&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;8,350,166&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;Basic earnings per share &lt;br/&gt;
            &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;$&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;0.06&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;$&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;0.08&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;Diluted earnings per share &lt;br/&gt;
            &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;$&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;0.06&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;$&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; white-space: nowrap;" valign="bottom"&gt;0.08&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock>
    <us-gaap:NetIncomeLoss
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_4e19d456ffd844f7a06667646aa1bacd"
      unitRef="U002">525000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_e91f9683f1aa4ad59fb531ebe0d10a4f"
      unitRef="U002">664000</us-gaap:NetIncomeLoss>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="c20240101to20240331"
      decimals="0"
      id="Fact_c2e3a13fea98413ba9d5bfa17134644f"
      unitRef="U001">8400354</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="c20230101to20230331"
      decimals="0"
      id="Fact_239aa11561bf41c7bce9ee45e10c4670"
      unitRef="U001">8303117</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="c20240101to20240331_AwardTypeAxis_RestrictedStockMember_TitleOfIndividualAxis_DirectorMember"
      decimals="0"
      id="Fact_fd30ff0ad10943d0a929949c85a66f7b"
      unitRef="U001">5108</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="c20230101to20230331_AwardTypeAxis_RestrictedStockMember_TitleOfIndividualAxis_DirectorMember"
      decimals="0"
      id="Fact_edf8744d417346d1b500e02ba8bfc3f1"
      unitRef="U001">47050</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="c20240101to20240331_AwardTypeAxis_RestrictedStockMember_TitleOfIndividualAxis_ShareBasedPaymentArrangementEmployeeMember"
      decimals="0"
      id="Fact_2d1f5adfd7d64ed984bef3258301eab1"
      unitRef="U001">94892</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="c20230101to20230331_AwardTypeAxis_RestrictedStockMember_TitleOfIndividualAxis_ShareBasedPaymentArrangementEmployeeMember"
      decimals="0"
      id="Fact_9c319f8d6a404b2e91d1ff2b192f9f60"
      unitRef="U001">0</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="c20240101to20240331"
      decimals="0"
      id="Fact_4e19a616ff974cf8af0ee6d0dc53a575"
      unitRef="U001">8500354</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="c20230101to20230331"
      decimals="0"
      id="Fact_7af3f5bbeffe46229e5da65e51fdbca0"
      unitRef="U001">8350166</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20240101to20240331"
      decimals="2"
      id="Fact_2dd005bbd21540f0934131186fb43a5f"
      unitRef="U003">0.06</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20230101to20230331"
      decimals="2"
      id="Fact_db6f13f08dba493495e19240cfcc8cef"
      unitRef="U003">0.08</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20240101to20240331"
      decimals="2"
      id="Fact_dff1cb8738e943e69579600b7c933eb1"
      unitRef="U003">0.06</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20230101to20230331"
      decimals="2"
      id="Fact_3c434d261e024ef4aad8ccb2b8041b51"
      unitRef="U003">0.08</us-gaap:EarningsPerShareDiluted>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock
      contextRef="c20240101to20240331"
      id="Text_7489146fd61c4f6eaee00c250001f24a">
&lt;div style="text-align: justify; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;"&gt;6.&#160; COMMITMENTS AND CONTINGENCIES&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

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

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;We are periodically involved in litigation that arises in the ordinary course of business and operations.&#160; There are no such matters pending that we expect to have a
          material impact on our financial position or operating results.&#160; Legal costs associated with the resolution of claims, lawsuits and other contingencies are expensed as incurred.&lt;/div&gt;
</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
    <tlfa:ShareRepurchaseProgramAndShareRepurchasesTextBlock
      contextRef="c20240101to20240331"
      id="Text_a41e88e2bd524f47863e75928f9c401f">
&lt;div style="text-align: justify; font-weight: bold; font-family: 'Times New Roman'; font-size: 10pt;"&gt;7.&#160; SHARE REPURCHASE PROGRAM AND SHARE REPURCHASES&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;On August 8, 2022, the Board of Directors approved a new program to repurchase up to $5.0 million of the Company&#x2019;s common stock between that date and August 31, 2024.&#160; As of March 31, 2024, $5.0
          million remained available for repurchase under this new program.&lt;/div&gt;
</tlfa:ShareRepurchaseProgramAndShareRepurchasesTextBlock>
    <us-gaap:StockRepurchaseProgramAuthorizedAmount1
      contextRef="c20220808_RangeAxis_MaximumMember"
      decimals="-5"
      id="Fact_43f244beae764cfc9f8ddc29002377f4"
      unitRef="U002">5000000</us-gaap:StockRepurchaseProgramAuthorizedAmount1>
    <us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1
      contextRef="c20240331"
      decimals="-5"
      id="Fact_97819d24016b4e78b7bcb84f4a3292fc"
      unitRef="U002">5000000</us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
